That's the challenge. Seperate, but equal is hard. Routing separarated multiple everything to everything paths for at least three classes (walkers and slow? cyclists, light vehicles and fast? cyclists, cars) gets really difficult where there are intersections, because either the separate paths cross at most intersections, or you're building an awful lot of tunnels and bridges.
As a cyclist, there's also a major conflict within cylists with regard to speed. When you're cycling only a little faster than walkers, it's fine to be on a pedestrian trail, but somewhere around 15 mph, it's not really good for either cyclists or pedestrians to be combined; at that point, IMHO, it's better to be with faster traffic.