There were other issues too, no? They went all in on multi-threading of the GUI which is super hard to do well, so apps were often crash prone.
Note that on Android they took an hammer solution, programming patters to invoke such code on main thread, have as outcome that there are either lint compile errors, or platform killing the application, for those flows not verifiable at compile time.
But it was 90s era C++, so probably that was all just a polite agreement and the reality was that circumventing the message passing to directly call methods on objects that belong to other threads was common, and just as likely to happen by accident as on purpose.
Should be:
SwingUtilities.invokeLater(closure)