For me, the most desirable method changes based on the context. In the context of Alt+Tab between applications, I agree that MRU works best. (Even though I get annoyed when I get a third application in the loop and accidentally tab to the wrong one, it seems like the "habit" business would just make the order of switching unpredictable, which would be even more annoying.)
However, in applications like Firefox/Chrome, where the tabs are always visible, I'm the opposite from you: MRU behavior drives me absolutely bonkers. This is because the actual order of tab switching no longer matches the order implied by the visual position of the tabs. To my disgust, Visual Studio changed to this MRU behavior in (I think) 2005, and ever since then the Ctrl+Tab behavior has been useless to me, because even though the tab I want is right next to the active one, it might take six or seven switches to reach it. My memory of the order of the most recently used tabs while I'm coding is poor enough that the ordering might as well be random.
If you wanted to keep the MRU method in this type of application, I think a solution is to automatically reorder the tabs. But VS at least doesn't do this...not sure about Firefox (it didn't originally, and I turned off the feature ASAP).
FWIW, your post (even including the VS behavior hate) is an accurate description why we don't do MRU tab switching in Chrome. It's a very common feature request[1], but we think we can do better and don't want to ship a middling stopgap.
[1] Few people that request it continue to request it after trying it in a browser that supports it. Certainly the number is significantly below those that prefer tab-order switching.
In Visual Studio if you hold alt-Tab it'll pop up a quasimodal dialog that you can navigate through with arrow keys to select the tab you want, or hop into one of VS's panes (properties, ReSharper unit tests, etc). It's much less ideal than being able to just switch to the one you want, but if (like me) you often get stuck with too many tabs to cycle through easily it's at least a way out.
I prefer browsers' tab switch system, because I always see my tabs. I do not always see my Cmd-Tab prompt, nor do I want to study it when tabbing around.
And the "breaking" is just a question of implementation, not a big theoretical headache.
However, in applications like Firefox/Chrome, where the tabs are always visible, I'm the opposite from you: MRU behavior drives me absolutely bonkers. This is because the actual order of tab switching no longer matches the order implied by the visual position of the tabs. To my disgust, Visual Studio changed to this MRU behavior in (I think) 2005, and ever since then the Ctrl+Tab behavior has been useless to me, because even though the tab I want is right next to the active one, it might take six or seven switches to reach it. My memory of the order of the most recently used tabs while I'm coding is poor enough that the ordering might as well be random.
If you wanted to keep the MRU method in this type of application, I think a solution is to automatically reorder the tabs. But VS at least doesn't do this...not sure about Firefox (it didn't originally, and I turned off the feature ASAP).