The lack of the definition of the DefaultConstructible requirements in C++03 was fixed by LWG 724 at a time where the core rules of list-initialization were slightly different than today, at that time value-initialization (shortly) was the primary rule for class types, i.e. just before applying CWG 1301, CWG 1324, and CWG 1368.
The order in [dcl.init.list] p3 was changed to respect aggregate initialization, but that had the side-effect that formally aggregate types cannot satisfy the DefaultConstructible requirements anymore, because we require that
T u{};
value-initializes the object u.
Of-course exclusion of aggregates was not intended, therefore I suggest to extend the requirements in Table 19 ([utility.arg.requirements]) for empty aggregate-initialization as well.