The beauty of having a pre 1.0 mode option available from the IDE, is that this solves the problem for everyone all at once.
From a support perceptive now users would find that code in 1.0 (current release) didn't work. Code in 1.1 (with compatibility mode) does work. Code in 1.2 (compatibility removed) might not work. Look at the long list of compatibility modes in Internet Explorer and how much effort developers have to go through to support the various versions. This is not a good thing, for anyone.
That said, the Java people didn't simply release an update with changes that broke existing code. They flagged certain interfaces as depricated, and the compiler would emit warnings that this feature would be vanishing in a future release. This gave developers time to make the needed changes. In C/C++, I believe #pragma macros would accomplish this goal. Now it may not be possible to do this in all cases, especially if method names were changed and then a new method with the old name introduced. With overloading and macros, it could be done. It seems a little late now though. I don't see them recalling 1.0.
For most--if not all--of its development, Arduino 1.0 was billed by the core development team as an opportunity to make backwards incompatible changes compared to the alpha-designated 00xx releases. Certain changes were made to help make the Arduino environment easier for newcomers to learn by fixing some inconsistencies which had developed: e.g. method/function naming.
Arduino is now being used in schools and other educational institutes.
By changing things in such an incompatible manner, most text books and/or tutorials developed by the institutes are now broken
As Arduino has no control over these sites, if they are unattended, they will teach people the wrong way to do things.
If provided libraries never get updated, Arduino starts loosing features previously taken for granted by novice programmers.
These things in my opinion could be harmful to an open source project.
The way things look, are we to assume that 1.0 may be ditched because the upcoming 'Arduino Due' can do things more efficiently than 1.0 can provide?