Nothing comes for free. If your schema doesn't live in your DB, then it lives in your app code. In the end of the day, you have to handle data model changes.
No you don`t. DB should be a single source of truth and there is no better tool that cares for the integrity of the data then the DB itself. If you have highly concurrent web app, and X connections are changing same collection, good luck with keeping the data sane without checks and transactions on the DB level. And let me not even mention if you have several different apps/services accessing the same db.
Managing replication and consensus for me is valuable. Map/reduce infrastructure is valuable. Forcing me to fit my data into a square table model is not helpful. Transactions at the data layer are rarely helpful (transactional behaviour always needs cooperation from the application layer, and that's very difficult to achieve with a traditional RDBMs; almost all database-backed applications I've seen don't actually offer useful transactionality). My tool of choice is Cassandra or similar.