I think the notion that the blockchain is Bitcoin's database is wrong.
* the UTXO set is the database
* the blocks take the database from one consistent state to the next.
* the blocks are needed only by newly started nodes to recreate the database.
In this context,
* OP_RETURN is not bloating the database as it never enters it.
* Encoding data in non-OP_RETURN outputs does bloat the database.
Switching what you call "the database" doesn't change the problem with bloat, but maybe the perspective changes a little bit.