Oh how wrong you are! ;-)
Since the purpose of the package in which the subs live is to contain dispatch subs, it should be presumed that that is all those subs are to be used for. Allowing some subs to be exempted is a natural expediency. But it would be wrong (IMHO) to let the package (like
TestPkg in the example) be any arbitrary class, or other package. Namespaces are a good way to package up a set of closely related subs, and in this case, they're closely related by virtue of being the targets of a dispatch table.
jdporter
The 6th Rule of Perl Club is -- There is no Rule #6.