I would recommend to use the first method - Create the Form in SPD, save it in .aspx and include it in a List definition feature.
Benefits
Creating the form in SPD and doing the modifications required are pretty much easy. For eg.- Adding a list view web part or modifying an XSLT would be quiet easier in SPD.
Now, adding .aspx in a list definition in VS and deploying it as a feature should be considered good enough to move it across environments. (DEV -> TEST -> PROD).
Whatever method you have implemented to customize in SharePoint comes handy only if it is packaged and ready to use as a WSP.