I wrote that, and did so intentionally. You’re right that it’s not needed for SquaresVector, but you do still need to use ::Type{SquaresVector}. The vast vast majority of AbstractArray subtypes will have type parameters… and it’s in that case where you’d need the <: clause.
You don’t just want to define this for values of type ::SquaresVector, however, because IndexStyle is a trait for the type itself (and there are some callers that will just ask for IndexStyle(SquaresVector).