When one uses software "normally", that is, how 90% of users use it, it usually works the way it was designed.
When you start to use new or seldom-used features, you quickly discover bugs that are either unreported or are a low-priority for the developers to fix.
I've recently completed an educational game for a client that pushed these boundaries.
The client has had frustrating experiences in the past with mandatory frameworks. Their last software required AIR which turned out to be a huge support headache, and the alternative such as Silverlight, Shockwave Flash, or even .NET would make support no easier.
We decided to use HTML5 instead.
More to come