runSqlConn, when m is instantiated to a monad that doesn't necessarily execute all further actions (like ExceptT), may neither commit nor rollback (when its first argument is e.g. throwE someError). This seems like undesirable behaviour.
Original discussion here.