Any of these problems can be solved via more sophisticated statistics; however, there is significant overhead associated with collecting and storing statistics.
It behooves the optimizer to seek out and use all available statistics in as creative a manner as possible.