Looking at the specification of the [[maybe_unused]], it states:
Appears in the declaration of a class, a typedef, a variable, a nonstatic data member,
The intention of this attribute is to declare that an entity might never be made use of, and if that's the case, the implementation shouldn't bother warning you that somewhere, for example, you might be using a wrong entity.
switch
statements are a completely different matter altogether: not handling an enumerator is problematic even if the enumerator is never used in that TU; it indicates a logical gap in your program. What if that function has external linkage, and someone else invokes it with that enumerator?
In short, even in TUs in which we marked an enumerator as potentially unused (which feels pointless, because at namespace scope they often are), covering it in your program logic is still very well-advised (and Clang is quite right in giving you that advice).
A bug was logged for Clang and marked as resolved: https://bugs.llvm.org/show_bug.cgi?id=36231
This seems to confirm that the enum value is allowed to be missing in a switch without warning in case it is tagged with [[maybe_unused]]