I really think law need to be that bikes have to ride on the shoulder or side walk, whichever is available. Some side walks even have a small shoulder before the road, so that makes a perfect bike lane without getting into anyone's way, though that's also where they tend to put the hydro poles so it wont always work. Each road design is different in this respect though. If you go the speed of a bike in a car, you can get ticketed for impeding traffic, so why should it be ok to be in the road on a bike? It makes more sense to put a human powered vehicle where humans go and keep motor vehicles where motor vehicles go. Of course cyclists should also give pedestrians the right away, and move far enough over when passing one, and slow down.
Here most people ride on the sidewalk and it's a non issue, it's the people that ride on the road that screw it up for everyone. You have cars trying to swerve into the other lane to pass them, then the oncoming car has to nearly go on the other sidewalk. Or you just have a huge backlog of traffic and angry drivers. Why not ride in the perfectly good, empty side walk instead. There are much more cars than there are pedestrians so most of the time sidewalks are empty anyway. For the few times you have to pass a pedestrian you can always do a shoulder check for cars and go in the road then back to the side walk.
The law here also states they have to be on the road, but nobody really follows it, and it's thankfully not really enforced either. Some laws are just meant to be broken because they are less safe. I used to bike lots when I was younger, and I felt MUCH safer on the sidewalk as well. Only time I rode in the road is when there was no paved shoulder/sidewalk but when I hear a car behind me I'd ride on the shoulder till the car passes.