ROS tries to provide a framework for the most common/useful communication patterns. It just happens that the most common pattern of communication in robot applications is best represented by Publisher/Subscriber kind of communication.
Usually the sensors in a robot produce a stream of data at a regular interval (laser readings, images from a camera, ticks from wheel encoders, etc...) and you want the robot to react in some way to the information coming from the sensors whenever new information is available. In that sense, a publisher/subscriber communication pattern comes quite handy. A node publishes the information from a sensor whenever a new reading is available and any node interested in those updates can subscribe to the sensor topic.
Request/Response is more suited for short, unscheduled communications like "enable/disable" operations, setting parameters and things like that.
Anyway, ROS just aims at providing the tools and maybe some good practices, but the way you use the tools is entirely up to you. You can use Request/Response pattern of communication to get the latest information from a sensor without any problem if that makes more sense for your application, no one is holding a gun to your head to use publisher/subscriber communication pattern :P
This is an interesting question, but also one which I believe is still being answered by the software engineering community. I'm not sure there has been any decision about which interaction patterns are "best" for robotics. Have you found anyone claiming that?