L' Eomot Inversé (12/29/2013)
I always wonder why SQL Server behaves this way, though; it seems pretty bizarre, and doesn't seem useful.
My guess - one day, someone discovered that the way the code for IDENTITY was written happened to cause this behaviour. And then they decided not to fix it, but to describe it. Probable reasons for this decision:
1. Maybe the IDENTITY code is not nice modularized, but spread out throughout the other code, and changing it is hard and risky. Too hard and risky.
2. Maybe MS realized that the intended use of IDENTITY is to generate numbers, and hence decided not to put any effort in influencing which numbers are generated.
3. Maybe MS found out that, despite what I just wrote above, some important customer actually has code that relies on this behaviour, and they didn't want to tick off this customer by changing it.
It's probably a combination of at least two of the above.