This is my first time posting, happened across the boards when searching for something else. So Hello All!
Anyways, one thing that I find most useful especially when using Exit Sub is that if you have it within a Try...Catch...Finally statement, whatever is in the Finally part of the block will happen regardless of anything else. So, if you wanted to dispose of objects, disconnect from data sources, reset buttons, etc. before you exit the sub/function then you can put this all in the finally block and make sure it is done. However with exit do, while, for - unless the try...catch..finally block is encapsulated within them, the finally will not be triggered right away, it will complete whatever code is beyond them then once it either finishes with the sub/function or hits the exit sub/function command.
This can also be a deficit for the exact same reason, so be sure of what you put in there!!
Good Luck and Happy Coding!!
D