While we're are notifying them of the value changing, we're also notifying them when the value hasn't changed at all. I thought this was a significant enough deviation from the intent of the spec (though not the letter), that it was worth mentioning. But it sounds like this is what everyone is used to, anyway.
So are you saying we can check the value to see if it has changed and only fire in that case? Or that the even will always fire, regardless?
I've also recently read that the other possible solution, calling blur on the onclick event, seems to be bugged in IE6. Sigh. So it looks like this is the best we're going to get.
I think calling this.blur() is a bad idea anyway, so it's best we don't use it. It fundamentally changes the way that the web page behaves and that is just dirty.
When we finally decide not to support IE6, we can always revisit - as you say, the spec is deliberately unclear here, so it's open for refinement.
I think we should just make the code smarter since IE7 is still a problem.
-Dan