We often hear that the pricing model is not the only problem. E.g. there are other restrictions like being forced to display the result on a (google) map etc
Also not that you cannot really cache routes, nor could you store all (not even Google) or even just distances or ETAs. But that is also not necessary to get fast and relative 'CPU light' responses.
> I get incomparable functionality using OSM.
Have a look at https://graphhopper.com/ with a reasonable pricing model for the whole Directions API and specifically for the Matrix API https://github.com/graphhopper/directions-api/blob/master/FA...
(note: I'm the author of GraphHopper)