I think you make some good points, but it is ridiculous to make spectators pay. Generally when you go pay to watch a show of some sort, you are paying to see professionals. At the very least, you are paying to see amateurs with some degree of skill. As you alluded to in your post, Tough Mudder participants are neither of these; they are basically bums off the street that showed up to have fun. Why should anyone pay to watch that?
Judging from the guy above, I am guessing this is how it really works: if you just want to show up and watch, you can do it for free (save parking, I guess). But if you want to get food and drinks, you need a ticket. The race, wanting to maximize their cash money, doesn't tell you this, they just say that all spectators must pay and they also get the benefit of food and drink.