.NET-совместимость и CLS-совместимость - это две разные вещи. Можно сказать, что все, что может каким-либо образом работать с платформой .NET, совместимо с ней. Соответствие CLS более строгое. Он предоставляет набор правил, которым должны следовать разработчики языков и разработчики библиотек, чтобы создать экосистему взаимно совместимых языков и библиотек.
Весь смысл таких вещей, как CLS, состоит в том, чтобы позволить вам избежать необходимости исследовать каждый пример языка и выяснить, как его поддерживать. Если вы хотите это сделать, вы можете, но альтернативой является соблюдение CLS и, следовательно, знание того, что вы будете совместимы со всем остальным (из прошлого, настоящего или будущего), которое также соответствует CLS.