What is the purpose of Gaussian, itself?
There are several interrelated reasons (disclaimer: I am a GAMESS developer).

Gaussian has a lot of features and interoperability.  To take your PM3 example. Yes, the results of a PM3 calculation are identical in GAMESS and Gaussian. But until recently you couldn't do a PM3 calculation in solution using the PCM method in GAMESS.  Also, what if you want to do a PM6 calculation instead. In GAMESS this is currently only possible only for elements up to F.

Because of this Gaussian has been the program of choice for many people, which also means they have trained a lot of people to use Gaussian.  Learning to use a new (and perhaps free) program well can be very time consuming, so it might be more cost effective to pay for a program you know how to use well.  And chances are you probably have to learn how to use several new programs to get all the functionality of Gaussian.