Regarding MySQL and InnoDB tables, is it considered good practice to globally keep the autocommit
mode disabled, so that all SQL statements throughout your code have to be explicitly committed? Does this introduce any overhead or other adverse conditions?
It doesn't add any overhead. Every autocommit transaction does the same work as a transaction with explicit begin and commit, but the autocommit transactions commit immediately after each SQL statement is done.
There is no downside to leaving autocommit enabled. If you explicitly start a transaction, this turns off autocommit in that session only until you commit. Then it goes back to autocommit until you explicitly begin another transaction.
The risk of turning off autocommit globally as @Sherry points out, is that you may have code somewhere that doesn't explicitly commit promptly. This leaves the transaction going when you may not have intended to do so. This makes the session keep a hold of locks, possibly blocking other sessions. It also inhibits timely cleanup of the rollback segment.
In my applications, I stick with autocommit, unless I have a specific case where I want multiple statements to be collected into a single transaction. Then I just start a transaction for that specific case. In any case, I leave the global autocommit enabled.