i can't speak for where @reko is, but in the US a lot of things have what is dubbed "shelf life" so when something is "over a designated time" it has to be thrown out! that means even perfectly good food. and there are regulations and legalities that wont let that food be donated! completely stupid! it is stupid laws- your second point i think.
i think also it is a human fear of real life... as a gardener and homesteader i know apples are not perfect ; food rots and goes to waste! the cycle of life happens very quickly. people try to have the perfect apples (all heavily sprayed) in the stores and the consumer looks at apples and only wants the perfect ones. it comes down to swaying public opinion and also public willingness to buy from local farmers and such as well. the stores carry what people want and what they buy so we are feeding the capitalist machine.