I received quite a bit of comment on my previous post, so I did some more research on the matter. My conclusion is that the usage of goto has no impact on the functionality of the program itself, but the usage of goto can open the doors of temptation to be a lazy coder and have a final product that may function perfectly well but is difficult to maintain. I have decided to replace my usage of goto with a switch statement.
I can also imagine that the more broader use of goto can make debugging confusing because of an unpredictable stack trace in thrown exceptions.
On another note, my friend, Noah Coad, will be starting work at Microsoft in about a week. He’ll be working on the VS.NET team helping to shape the IDE of the future! He’s a great WinForms programmer and a C# MVP.