This one is more or less my fault, since I contributed this code. It was indeed discussed at length MANY times on the developer mail list, about basically these same trade-offs, and especially whether to change "INPUT" or remain perfectly compatible with the old behavior.
First of all, before talking about theory, I'd like to mention practice. This behavior has been in Teensyduino for 3+ years. While INPUT was technically changed, in practice the compatibility with virtually all existing sketches and libraries is excellent. There could be some cases were it matters, but in practice they're extremely rare. Virtually all published libraries and sketches use pinMode() first, then digitalWrite(). If this had a significant practical impact on real users, my opinion about changing an existing feature would be different.
The trouble with the old INPUT was its ambiguity. Yes, OUTPUT also suffers the same trouble, but even getting just INPUT and INPUT_PULLUP fixed required years of discussion. If it were my decision (obviously it's not), I'd add OUTPUT_LOW and OUTPUT_HIGH, and I'd probably make OUTPUT default to OUTPUT_LOW. But so far, only INPUT has been addressed, as it was much more urgent.
The huge problem with the old INPUT and the lack of INPUT_PULLUP is it drives all Arduino users one of 3 solutions for the pullup resistors:
1: using digitalWrite() in combination with pinMode()
2: direct register access
3: building their own hardware abstraction APIs.
The trouble with these, except perhaps #3, is they are tightly tied to 8 bit AVR's hardware. Not even 8 bit XMEGA AVR maintains this hardware behavior. It's hopelessly non-portable. If you believe you'll forever use only 8 bit AVR (but never XMEGA AVR), that's not an issue. But if you imagine someday using ARM or other chips, it's a huge problem. Late as it may be, Due is coming...
From a perspective of serving novice users, which is Arduino's main goal, APIs with quirks like depending on prior state are not very good design.
Regarding alternate pin manipulation APIs, many I have seen envision only non-xmega AVR hardware and are barely more portable to any other chips than directly hitting the registers. Some are much better. Designing cross-platform APIs that actually perform well, even on only 1 platform, is quite challenging.