F1 is very unique in that the number of parties involved in a successful season is enormous. When it comes to the F1 pie it is split into thousands, if not millions of pieces.
It's all well and good to want a race in Germany, but if no one is willing to pay for it, then it can't happen.
I think it's ridiculous that governments are paying for F1 races to happen. I don't mind them chipping in a little bit to encourage local jobs and putting their city/region/country into the international public eye, but I don't think the German/Canadian/Singapore government should be subsidizing my entertainment.
I certainly can't blame Bernie for ratcheting up the money FOM makes from race fees. That was his job and he was damn good at it. It was unsustainable, but that's how business goes, you make the money when you can, and then you move on to other opportunities.
For the sport to survive, FOM needs to ensure the tracks can run the race economically. Any event that can sell 100000+ tickets at premium prices should be able to turn a profit. Sure, some tracks are run more effectively than others, but when your gate receipts are in excess of $30,000,000 before you sell a single billboard, beer or t-shirt, there should be room to make money.