The only big change which isn't just churn is changing the messaging system to DDS. My problems with ROS1 aren't related to the implementation details of the messaging system. It's the build system, the difficulty of adding tests, the difficulty of writing deterministic systems with their messages being inserted in the middle of everything, needing to put everything through their messages, and in the end the fact that I can't use ROS for a system and non-ROS for another system and have them work together nicely.