With CouchDB it's the only way to do it. It's a reasonable approach as long as there is no shared data between users (otherwise you have to set up a large number of server-to-server replications to keep everyone's shared data in sync.) It does require that you create some server-side infrastructure to create and provision new databases as new user accounts are created.
This approach will not work with Couchbase Server because buckets are quite heavyweight. Each bucket reserves RAM and is kept 'hot' by the server for maximum performance, but that means that you can't realistically have more than a dozen or so on a server.
The Sync Gateway is based around the design of putting all the data into a single database and using channels and access controls to keep private data private.
If the doc IDs are significant to the app, then use the user ID as a prefix (e.g. "jens:highscorelist").
If they aren't significant, you can just use UUIDs by letting Couchbase Lite make up the doc ID for you.
—Jens