Still an issue in 5.4.17, session’s CacheMode is not used:
protected boolean needsAfterTransactionCompletion() { return persister.canWriteToCache() || hasPostCommitEventListeners(); }