Why the jQuery Abstraction isn't needed.
(One needs some form of browser normalization so that modern features works, no-one is doubting that).
Related: jQuery library critique
Abstractions that aren't needed
QSA works (shim=sizzle). Besides selectors are generally bad practice. Favour node traversal, gEBI, gEBTN and gEBCN. (shim=domShim)
The DOM attribute API works. Besides one rarely touches attributes and one rarely touches innerHTML. Generally one manipulates properties
properties work, weakmaps work (shim=weakmap-shim)
Promises, deferreds, futures, etc aren't that useful. Favour managing callbacks and using flow control techniques.
DOM2 events work (shim=domshim). You don't need anything else.
The HTML form element is more useful. Doesn't give any useful abstraction
The DOM works (shim=domShim). If you want set like behaviour you can use NodeComposite
ES5 works (shim=ES5shim)
For simple use cases the XHR API is trivial to use. For more complex use cases you can use a library like xhr
It should be noted that there is no solid shim for XHR2 yet, including file uploads & CORS.
Todo: Write an XHR2 shim
Abstractions that are still needed
CSS, Dimensions, Offset
I havn't seen any good CSS normalization shims. One propably needs some form of abstraction to handle CSS nicely.
Todo: Write an CSSOMView shim and a CSSOM shim.
Animations, Don't know of a good CSS3 shim, so we still need a browser abstraction.
Todo: Find an elegant standards compliant polyfill / shim solution to programmatic animations.