Is your requirement that authors be able to change the form definition, or should form definition be controlled by developers?
In the case of authors being able to change the form definition then I would say best practice would be to create a page that holds the form definition (using whatever components work for you - either the out of the box form components or something custom). Then use the reference component to point the definition in all the other locations you want the form to appear. One thing to note is if you are using dispatcher for caching you need to make sure you strategy for cache flushing accomadates this approach.
In the case of developers controlling the form definition you could crate a component for each form, and then simly drag that component onto the pages that require the form. In this case your would control all the form label and description elements in the localization file.