(1) This is difficult. You have to support multiple versions within the same executable. So there is an economic barrier.
(2) And sometimes, it is impossible. An example is supporting new iphonex+ aspect ratios. There's no way post-launch to 'go back' to the old scheme or go forward to the new.