Then, why is a custom enable/disable required ?
Not required. Just an option for the seemingly (?) rare design that implements both extensions and hence needs a bit to control which is enabled (and the other is disabled) - ASSUMING that there is not sufficient practical justification to provide a standard CSR bit for this purpose.
(and possibly a bit more complicated: if misa.D, Smstateen.Zcmt can't both be set, so setting one must clear the other)
OR is that extra bit of functionality what makes it custom - though that would be the requirement of any extension that conflicts with other extension,
which should probably be made part of the spec so we don't go through this exercise every time it happens.
I think I want to say yes? But in any case the point is whether there is enough practical justification for having a standard bit that switches between these two extensions (which is not even a simple extension enable/disable bit, but an ISA switch bit).
To me it seems like the first question is whether introducing a standard ISA switch bit for Zcmt is addressing a real-world need versus just a theoretical need? And if just the latter, then the rare exception of a design that implements both extensions can instead have a custom "ISA switch" bit.