The main issue with public transportation energy efficiency is occupancy. Trains and buses in a "walk-on" schedule are not guaranteed to be fully occupied. Airlines and highspeed rail operators manage demand so that trains and planes are often up to 70% occupied. However, walk-on buses and trains often have under 20% occupancy. What this means is that cars do a lot better except in rare, properly-managed, high-density scenarios. Here in the USA, outside of a few urban areas, such San Francisco and New York, there simply are not the densities needed for successful public transport operation. In these cases, the automobile (and motorcycle) are actually more efficient because of occupancy.
Case in point. A 55 passenger advanced hybrid passenger bus gets 5.5 MPG city. With all seats full, it gets 300 pMPG, which is really good. But, this almost never happens. Why? Because the average number of people on a bus in the USA is 9 (UK is 10). What that means is that the bus gets 55 MPG. A Prius with one driver gets 50 MPG, which is similar. A Prius with 5 people packed in gets 250 pMPG, similar to the bus (I'm sure the Prius would do better if it was a diesel hybrid).
In a suburb, or in a rural area (like most of the US!), most of the trains would be empty. Rail also has very high costs (much higher than building a road and running the cars) associated with it if it cannot be fully utilized. Should people live in suburbs in rural areas or should they give them up and live in a city because of transportation efficiency? That's a different question. What we do know is that cars are the best way to deal with suburbs and rural areas, and buses are a necessity for those who cannot afford to own cars or cannot drive cars because of disability. In the future, if robotic cars become a reality, we can have robo-taxis instead of buses for the disabled.