I wonder why economic laws does not work here? I.e. if certain categories of people comes with certain risk in the eyes of landlords, this should be reflected in price, and who don't want to have to deal with adjusting price for risks should loose to once who are more flexible?
Because people aren't rational actors. Economics can't tell us what kind of society we want, nor even help us to estimate risks realistically when cultural biases are at play.
High demand, low supply. A landlord in Munich can ask - more or less - whatever he wants and still find people who are desperate to get a flat. Any flat. For any price.
Of course. Even if all these people were named Hans, age 25, no family and high paid tech jobs, still half of them wouldn't have a place to live. No laws can change the numbers.
Then it's the same thing as just saying "no". Which isn't discrimination, but it's just logical. If the market price for renting is 1000, and I ask you for 10000, that's basically a "no". And to give some glimpses towards answering your question, the basic answer is the laws, and information asymmetry. I am only aware of the local situation, but the law is strongly, to the point of unfairness, in the side of the tenant. And in sum, the owner has less than 1 hour to judge psychologically if the person in front of him is trustworthy. Something that is easily faked.