Parking is a separate charge because by law, it must be. Any misc. charges must be labelled and categorized upon check-out or the hotel can be sued. That goes for every hotel in the US and Canada.
I know it seems unfair to the consumer, but it really isn't. It isn't added into the cost of the room because not everyone brings a car. Would it be fair to charge everyone regardless? Of course not.
However, hotels will NOT volunteer information. They do offer certain things, but they do want the money.
Even Disney does this. They try to talk you into the packages because they make more money that way. The clerks are litterally told not to volunteer ANY information unless they are asked specifically for it.
Hotels dont work like other businesses. Often, they survive on what they make during busy times, for the rest of the year.
Great example is Mardi Gras in New Orleans. You pay around $300 a night with a 3 night minimum at ANY hotel. Likely it will be more unless the hotel is desperate, therefore it probably isnt a very good hotel. However, during the summer time is their dead season. Its a time when a hotel can go bankrupt if they have nothing left over. The money they make from Mardi Gras tides them over that dead season. If it didn't, you wouldn't have a hotel to stay in during that time.
They alo change rates depending on more than the time of year and season. It changes monthly, weekly, dailey and sometimes even during the day, depending on how busy they are. What is the cheapest time? Usually after 9 pm during the dead season, you can get a great hotel for almost free because by that time, the hotel knows if they can't sell the room for the higher fee, they just need to get heads in beds.