It’s a feature Although a pretty contentious one. The rationale is that collections might be empty, which makes them optional. However on the other hand, you might want to differentiate between an empty collection and an absent one. So you might say both that a collection which might be empty is “required” (but has to be there), or not (no elements might be provided, making it an optional field).
Well, I hope the comments on the issue also explain why making an empty collection “required” wouldn’t work well. Maybe that’s simply a shortcoming of Tapir’s design around schemas and codecs - but luckily it’s overridable and there are work-arounds.