>The function is also only ever declared once rather than repeatedly as you sometimes see when people want to make sure it is declared, since DECLARE definitely carries a performance hit.
I don't see much of a point in considering a performance hit. Whatever you call with shellexecute() will surely last at least one order of magnitude longer than the registration of the call. Not that anyone calls this in a tight loop. And then, even if someone would, well, declare just before the loop.