Best way to determine if ROS is installed

Yes, there are. And they could change anytime.

This list sounds kind of fragile. I would guess that there are other ROS packages (which are build with plain CMake and not catkin) which have no other ROS package dependencies.

Why not check if any ros-<distro>-* packages is installed since that is what would cause the problem of not being available in a newer Ubuntu distro? Depending on the output of e.g.

dpkg -l | grep ros-<distro>-

Basically checking if the output is empty or not.