Because it affects the control flow . Anything that calls it as a function will manage the response, so the form will be modal and the object that is created as part of that process will be returned and managed locally by the caller. If it is called as a sub then the caller just wants to kick off a process and continue on doing other stuff. The form will be modeless allowing the user to complete the activity and the resultant object will be sent to a central processing class to deal with it. Everything that happens in the form is the same in both cases.
Thanks for asking, and any thoughts welcome, but I am not looking to re-architecture the application, just looking for a more elegant way to implement what is there now.
Do you know if it actually possible?