If efficiency is what we wish, then the answer would be burning the fuel in centralized chemical cells, then storing the released energy in batteries. Car refueling will involve exchanging discharged for charged batteries. Then we would also get all the benefits of electrical motors - the acceleration, reliability, longevity, and cleanliness.
The reason is that fuel cells are very efficient themselves (coefficient is in the 90s), because they burn at high temperature and because they are not thermodynamically limited by Carnot's cycle. By comparison, an internal combustion engine has efficiency coefficient in the 30s (a steam engine is even worse - maybe a few percent). Even if charging batteries will have some losses, this would still be the overall far more efficient fuel use.
Other reasons for centralization would be safety and the catalysts involved. I doubt most people will be comfortable with a 3000degC fuel cell in their trunk. Also, there is only that much accessible platinum in the world. Making millions of cars with separate fuel cells will be very wasteful and expensive.
The trick though is that before the economies of scale can kick in, such a business has to remain viable while growing enormously and establishing a network of battery exchange stations. As such, it would be a huge risk for private capital, and that is why it is not done. If the feds were any serious about energy policy, they would make a large package of tax exemptions etc. to help a business like that reach a critical mass. But, our politicians prefer autocolonoscopy to automotive solutions.