From the rules:
“The striker shall to the best of his ability endeavor to hit the ball on. If the referee considers the rule infringed he shall call foul and a ‘miss.’”
It should be remembered that a foul and a miss give the opponent the opportunity to have the ball(s) replaced and the shot retaken and also that three consecutive misses (when not snookered) result in forfeiture of the frame. These options and sanctions are not available for fouls without a miss being called. In the professional game referees are under instruction to call a miss almost whenever a player misses.
The rule was introduced to prevent the “professional foul” where players would deliberately miss when in a difficult situation to avoid leaving their opponents with an advantage. Top players today may not deliberately miss, but may attempt a trickier shot (with the greater risk of missing) than an easier one that may be available. The problem is that in calling a “miss” occasionally under his discretion (rather than, as now, whenever a player misses) the referee is effectively calling the player a cheat. Of course the world of sport is full of cheats but happily snooker (on the table at least) seems to have avoided its share. I believe snooker players are among the straightest in any sport. In general they do not consider themselves to be cheats and if the rule was discretionary I believe it would generate a lot of bad feeling.
Perhaps an easier way round the problem would be for the victim of any foul to be given the opportunity to have the ball(s) replaced and the shot retaken. The distinction between a “foul” and a “foul and a miss” would then not be necessary. However, I have not properly thought this through and there may be snags. It is also interesting to note that World Snooker recently debated the matter and decided to leave the rule as it is.