Webstorage is a bit handicapped for SPAs. There is a 5MB size cap, and you can only store strings. It's nice as a cookie replacement, but the limitations hurt for anything more advanced. IndexedDB resolves these issues while also being fairly well supported.
The Web SQL Database specification is no longer being maintained and support may be dropped in future versions.
Also - these fallbacks are not exactly swappable. Its like swapping from a Database to a Filesystem as a fallback. Difficult to abstract into a single library/api.
And you still potentially leave out IE users if those are your options (depending on your IndexedDB needs).
IndexedDB to localStorage fallback might work - but again might not be an easy API abstraction.
PouchDB, ydn-db, IndexedDBShim, and Lawnchair will do this as well.
Web SQL may be "deprecated," but it's unlikely to be dropped by Apple or Google, since so many mobile web apps depend on it. Even the mobile version of Gmail uses Web SQL.
Webstorage has excellent browser support but isn't utilised enough (http://caniuse.com/#search=webstorage)