Well the biggest advantage of a custom one is that it's not being affected by anything other then your custom code.
It will not contain automatic activities by the system, and should be (more) immune to upgrade changes...
That being said, if you just want to log the purchase activity it could be nice if the system handles the default scenario's automatically for you.