Unless one's interaction with the database are really basic (i.e. a single SELECT statement), one would want to be as explicit as possible regarding where transaction boundaries are.
Having a default that hides this aspect from my code always seemed a false convenience to me.
edit: this is just a tangential reflection inspired by your comment, not an answer / nor I wanted to detract from your fact statement.