One reason is that if the compiler automatically compiled the optional parameters in overloads, this would be contrary to the ability of developers to define them themselves. For example, the following code is legal.
class Container { public void Example(int x) { ... } public void Example(int x, int y = 42) { ... } }
source share