I may be wrong...for my understanding and test on elgg's api.
elgg_view_form is getting the form from the pre-defined from in the form/xxx.php file.... its kinda include once()...which is accessing other files in order to echo a form/forms...
so compare with the hard code form...isn't slower? especially when the form is getting lots other values and variables from database/other pages...
My current problem is, own defined form is not evern showing up in the page....somehow...not sure if there's any other requirement to use your own code other then the elgg one's.
As Matt said, using your own code won't yield any significant performance increases. In 100k interations you might see a few ms gain.
We'll need to see your code to understand why it's not showing up. Please use gist.github.com and post a link to that.
Actions should never output anything. If you don't want to use JS, you can change the form to always show a new, empty email field, and then change the action to accept email input as an array.