Еще одна вещь, которую следует принять во внимание, - можно ли использовать класс в массиве:
foo bar[400];
В этом сценарии использование параметра по умолчанию не дает никаких преимуществ.
Это определенно НЕ сработает:
foo bar("david", 34)[400]; // NOPE