Having everyone pay for support that actually delivers would be fine in theory, but that doesn't really work out either. It would just punt the problem down until you hit it again. Even if you're paying for support, you're still likely to hit a human who just regurgitates a script at you and is unable to resolve the issue. Oftentimes, escalation is needed. If your support agent is unwilling to escalate, back channels are the only option. Having internal friends raise a fuss is one method that sometimes works, but going viral on Twitter/HN are other ways that people accomplish this.
The reality is that people who are more well-connected have advantages. Someone with a large social media following or a business that's more well-known will always get better support than someone unknown. I don't know what the solution to this would be.