If I may address the breakfast issue. Hotels that are in cities with international airports will often have the breakfast seperate. Why? In former times, every hotel offered breakfast with the room, but because so many people have early flights, guests started asking if they could have the breakfast price removed if they weren't going to eat it. Also, if you have a lot of international guests from Asia, the Middle East or India, they really don't want to have things like brotchen, ham, salami and cheese for breakfast. They prefer to have something else, so they too ask if they can have the breakfast price removed. Many large cities in Germany, France, or Italy have big conventions and guess what, breakfast meetings are popular, so these people also want the breakfast removed since they won't be there.
Thus, many hotels decided to it was easier to book them seperately. It makes it more cost effective for all concerned. For those big, 5 star places that charge 20 euro for breakfast, you do get what you pay for, a very extensive buffet, food that will be accepted by many countries with items such as rice, olives, tomatoes, feta cheese, and so on.
So, it isn't really about "bundling" items up to make more money, it is more about giving the guests what they want. In smaller towns, breakfast does almost always come with the room. There are plenty of hotels in the city where you can also find free breakfast available, just that it is becoming less and less for the reasons I stated above.