Here are are some consensus generalities:
1-The angler facing/casting upstream has the right-of-way relative to a downstream fishing angler. The downstream fishing angler should stop fishing a sufficient distance above the upstream fishing angler. IMO, a minimum of 50 yards is reasonable distance; then loop around to below the upstream facing angler and continue fishing.
2-If two anglers are fishing in the same direction and side of the stream and one of them is moving faster than the other; the faster angler should loop around the slower angler and proceed fishing a reasonable distance away. IMO, 50 yards is a minimum, but, ideally out-of-sight of the other is better; providing it is at the minimum distance.
3-If someone sitting aside the stream and not actively fly fishing; DO NOT assume they are not fishing. They can be changing flies, observing a rising trout or untangling their leader. Also, it is poor manners to assume that you can fish on an opposite bank. If in doubt merely ask.
Here's my take:
1-I believe that 90% of anglers who display poor stream etiquette are unaware of stream manners. If appropriate and there is an opportunity, diplomatically educate. The remaining 10% are consciously violating good stream manners; they're trying to beat you to a fish or crowd you because they want to fish the area you're fishing; they are "gaming" you. It is your decision how you deal with these jerks you will occasionally meet on the water.
2-Etiquette is subject to the venue. For instance, California's special regulation waters on both Hot Creek and Hat Creek have different standards relative to spacing amongst the anglers than the Little Truckee. At the former two creeks; it is generally accepted to be just outside the casting-range of others. At the Little Truckee a minimum of 50 yards spacing is the established distance between anglers amongst the regular visitors.