In building any kind of system or infrastructure, strange things can happen when your designers and engineers aren't representative of your real users: you end up optimizing for the wrong audience.
This problem surfaces in software design all the time. I recently read something to the effect of "Every time you ask a user to make a choice about something they don't care about, you've failed." While the most configurable, flexible application might be an engineers dream, all those configuration dialogs, checkboxes and sliders are not awesome for consumers. It seems many of the innovations in user interface design over the last ten years have been the reduction of such clutter, noise and confusion.
Apparently this pattern surfaces in other fields too. For example, Seattle bus routes are identified by a single number which represents the route in both directions. You have to combine that with the final destination to figure out which one you want. Except that some buses terminate at different points along their route so even that rule doesn't always work. And sometimes you know you need to go in one direction but are unsure which . It's fine once you know how it works but a nightmare for newcomers and tourists.
My guess is that both drivers and route planners think in terms of circular or out-and-back routes which the same drivers traverse every day. Reasonably enough it makes no difference to them which direction they're driving in.
Why not have a 5A and 5B bus that go in different directions along the same path? You can always get back to where you came from by switching the letter.
Bonus point: I started drafting this very post on a bus just minutes before I overheard a rider ask "is there more than one 271 that goes to Issaquah?" to which the driver replied "no there's not, but this one's heading to Seattle."