In a nutshell, you need to get down to the "utility" concept. It's used (for example) to theoretically prove/support the idea that free exchange is always beneficial for both parties.
Putting prices onto otherwise unrestricted resources likewise optimizes for utility, especially if there are tragedy of the commons issues. The catch is that utility is measured in dollars.
Price systems increase efficiency by introducing trade-offs. If you don't really need to use the road you won't, because there's a cost to it. But (like you say), this trade-off is different for different people. For rich people, $40 is always worth it. For the middle class, $40 might be worth it if you can get home in time for date night. For poor people, $40 means you can't afford a date night this week. It's never worth it.
Basically, dollar-utility conversion is different for people with more or less money. To call this a utility-efficient outcome, you need to concede that a poor person's family dinner time is worth less. That's obviously false. We can't measure utility in dollars, if we have inequality.
On top of all that, roads are not "full" markets. This is not a free market solution. You can add a price system. but you don't have supply side effects. Prices don't reflect marginal costs of commuting, because there isn't competition. Price signals don't control supply, or lead to more supply. Even if supply wasn't exogenous in practice, the fixed/marginal cost ratio would make the "market" unresponsive anyway. This is not really a "free market" vs "public good" because free market just isn't an available option.
I would like to see some less idealistic economists take over on these issues. One interesting option is creating a fake "currency" for fast lanes. Ideas that assume people's time, enjoyment of the road and transport needs are equivalent. You probably can't take money entirely out of the equation, but there are ways of doing this without handing out benefits to the wealthy at the expense of the poor.