Вы не нарушаете инкапсуляцию, насколько я вижу. На самом деле, я даже не уверен, что это можно назвать инкапсуляцией, учитывая, что пространства имен не являются специфическими для ООП - это скорее просто происхождение типов.
Правило состоит в том, чтобы просто поместить тип в пространство имен верхнего уровня, если вы чувствуете, что он принадлежит ему. Очевидный пример для этой ситуации - когда (используя ваши примеры) MyAPI.WebLogic и MyAPI.Compression (возможно, также как и другие) должны использовать определенный тип - поэтому лучше всего поместить этот тип в MyAPI. Если вы все еще не совсем уверены, что принадлежит, используйте библиотеки Microsoft в качестве примеров. В пространстве имен System
внутри BCL существует множество классов!