[meta.help] says that integral_constant<T, v> provides ::value_type (for T) and ::type (for itself).
[intseq.intseq] says that integer_sequence<T, I...> provides ::value_type (for T), but nothing for itself.
Self-typedefs can be useful when users create chains of derived classes, then want to get the Standard base type. This is especially relevant to integer_sequence, as variadic templates encourage recursive inheritance.