The case in the article is for when `T: Default`.
The reason this limitation exists is because it was decided that an array length of 0 should impl `Default` even if `T: !Default`, so `impl<T: Default, N: usize> Default for [T; N]` can't be used.
This may be possible in the future if specialization is stabilized, but for now we're stuck with that limit for `Default`.