There are better systems. A distance or time window based fare seems like the best way, until societies have developed to the point where public transportation is free at the point of use.
Germany has done well with the €49 per month "Germany ticket", which includes all urban and regional commuter trains across the country. If you want to take a high speed long distance train there is some weird surge and/or bucket based pricing. Depending on when you book the same trip can cost anywhere from €29 to €180. In comparison neighbouring countries like Switzerland or Netherlands have flat distance based fares for most services.
Alternatively many countries offer flex tickets, in which you book a section of travel, say from one city to another, and you have the full day to make that trip however it works for you.