According to http://caniuse.com/script-defer, most browsers support the script tag\'s defer attribute.
I would like to know if scripts spec
Simply, script should be executed before $(document).ready() whether defer is used or not and almost all major browsers support defer.
But for being safe side I encourage you to use both $(document).ready() and defer.
So why defer? Because it helps page appear quickly (as external script is loaded parallel) and a really important factor in Google's page speed tool, a good detail can be found here http://code.google.com/speed/page-speed/docs/payload.html#DeferLoadingJS