What do you mean "generate form on the fly"? As in: the form for page "page/form" doesn't exist in a canonical state but is generated based on variables such as date/url/taxonomy? Or is it just the default values for the form etc?
In any wayanyway: the options to have a form on a page are:
- Hardcode HTML into the node content, e.g. etc
<form><input>
etc - Use hook_menu to create the page and use either the form API
- Use hook_menu to create the page and use the straight HTML
- Use hook_nodeapi to add a form to the content via hook_nodeapiwith the Form API
- Use hook_nodeapi to add a form to the content via hook_nodeapiusing HTML
- Use a module such as webforms to add the forms
I would suggest either 2 or 4. When you say that hook_menu generates these plages "on teh fly": that's not true. hook_menu is only run on cache clear, and assuming you're using caching then the generation of forms isn't going to make much difference to your server. This may be a case where you're sweating about optimisation unnecessarily.
Using Form API gives you a load of tools that you'd otherwise have to handle yourself - validation, submission, sanitising, standardising, etc.