I have owned 4 BMW models and have often defended the perceived cost of maintaining a BMW to people when they say that they wouldn't own one because it would cost too much to maintain.
From my own experience, the cost has been comparable to owning most other marques. Like any brand, if you go straight to the dealer for all your parts and service needs it is going to be expensive, and you need to shop around for these needs.
In the past I have often been pleasantly surprised when the cost of buying a part from a BMW dealer has been equal or cheaper to buying the part elsewhere. This has mostly been common service items, parts like filters, radiators, etc. As a few examples, in the past I always bought my oil filters from the dealer (less than $15 - cheaper than non-genuine from the local auto parts store), and a brand new
radiator cost less than $350 from a dealer (I have paid that for a reconditioned unit before). Of course for less common parts some of their prices are ridiculous, and for those parts I always shop around or consider second hand.
I hear stories from friends and family where they have spent large amounts of money servicing their Japanese, Australian, Korean or whatever car and they say at least it wasn't a BMW. Someone told me that they spent $1,500 having their Honda serviced with a clutch replacement and were very surprised when I told them it cost me $700 to have the clutch replaced on my BMW and a few items attended to. Similar story for someone who spent a little over $1,000 on a Camry service and water pump replacement (much less labour to replace a water pump on a north-south engine).
Anyway, back to the point. The last few times I have got quotes for parts from various BMW dealers prices I have found them to be substantially higher than I remember. Even my $15 oil filters are now $25.
What's going on BMW - I can't go on defending you.