Earlier quoted context omitted.
I would argue that it's a bug for it even to be possible to autocommit.
What do you mean? Autocommit mode is the default mode in Postgres and MS SQL Server as well. This is by no means a MySQL-specific behavior! When you're in autocommit mode, BEGIN starts an explicit transaction, but after that transaction (either COMMIT or ROLLBACK), you return to autocommit mode. The situation being described upthread is a case where a transaction was started, and then rolled back by the server due to…
In a sane world, statements outside `BEGIN` would be an unconditional error.