If this is the case, then how come most of the common exchanges have a fixed bitcoin withdrawal fee (usually around 0.0004 bitcoin or around $20), which I am unable to change?
The flat 0.0004
BTC or the $20 you pay isn't a network fee but the exchange fee. In fact, when you request a withdrawal, the exchange will pay way less than that for the network. Besides, they usually use transaction batching meaning that they combine many transactions into a single one and this way they pay even less for each withdrawal request.
Although they have internal transactions they have to cover and other expenses, the fees they charge are still ridiculously high.