But I thought the whole point of the adapter model is to NOT take over PouchDB. In fact, that is the last thing we want to do. We have plenty of scenarios where we use PouchDB with normal vanilla HTTP/S URLs, with indexedDB, with WebSQL, etc. right alongside our Thali adapter.

What's really nice about the current code is that it doesn't touch PouchDB at all. It just uses well defined extension points to take over only when using our adapter and in no other situation.

This means, for example, that we can have a customer drop in multiple different adapters and they won't conflict! Because nobody ever needs to take over window.PouchDB. 

I think that is a major feature and we get it at the cost of exactly one line of code.