You might find this article from Realtor.org interesting reading.
IMHO there are two key aspects of the costs that my clients pay:
1. They should be directly related to the transaction - not just "padding".
2. They should be disclosed as soon as they are known to be applicable. Usually that means that when we are working on a transaction, we request an "estimate of funds required to close" for buyers and an "estimate of seller's net proceeds" for sellers so we can evaluate as early in the transaction as possible any potential problems, questions, concerns, etc.