To elaborate a bit about the error in question: when calling Commit, it will bind to events of the adapter, and will unbind them when everything is over (commit or rollback). When you issue a reset in between, that doesn't reset any ongoing transaction, it just clears data contained in the scope.
What does cause the issue in the empty scope is that if you call commit on the empty scope the action is a no-op, so no commit is actually issued (the event never fires) so the binding is never undone and the next time you call a commit again on the scope, it sees there's already a binding with the adapter, so it assumes a transaction is still on-going.
While this is a bit of an edge case (2 commits on an empty scope), one could argue it's a bug, but frankly this is so unlikely it will happen at all...
that said, if you get this with entities in the scope then something else is going on (i.e. there's no save happening so the transaction is a no-op). As Walaa's repro shows it's not something related to the 'Reset' method, it's working fine. So I think your repro should be something else, i.e. it has entities which are saved.