So, I actually ask "What would you improve about ROS" in every single related job interview I conduct...I've got a long list.
On ROS usability itself, the largest thing which has come up has been the renewed difficulty in getting started. Even though new users are no longer being thrown into the middle of the rosmake/catkin transition, the overhead in creating a new package has increased dramatically.
It's been a long time since I've used the rosmake/rospy/Electric combo, but IIRC all you needed to do was:
1) Source setup.bash
2) Call the package creation script
3) Write a .py script
4) Add the package to ROS_PACKAGE_PATH
Three of those four steps are one-liners, and the fourth has near-instant gratification for the developers.
Another point: ROS used to be three steps for a full install: (key, update, install), and now you need to jump through hoops for rosdep and other "noncritical yet required" items.
Something else which is important to note is that the purpose of all of those above steps are easily explainable to someone who knows nothing about ROS at all, which is certainly not the case now. (ex. "Why do I have to specify basic ROS dependencies in three different locations?", "Why do I need to set up build instructions for a script I intend to run in place?")
So, we've made development and installation more difficult by leaps and bounds, and now we have the potential to make the same mistake with the transport layer?
IMO, we should all keep in mind that ROS is where it is in large part due to it being easy to install and get started on. I'm not saying at all that we should stop improving performance, but I am saying that we should consider the "getting started" for new developers more than we have been. Even from a personal note, it sometimes takes me longer to set up a workspace and package setup for a quick test than it does for me to write the actual code. True, I can set up templates and scripts to speed this up...but why should I have to?