Как вы упомянули, контекстное меню PerspectiveSwitcher создается глубоко во внутренних классах платформы рабочей среды. Вы не можете помешать его созданию, а также не можете получить ссылку на PerspectiveSwitcher, чтобы как-то подавить меню, без интенсивного использования внутренних классов и большого повторного использования существующих функций.
Итак, проще говоря, IMHO кажется, что контекстное меню не должно подавляться.
Самый простой и чистый способ решения вашей проблемы - подавить всю панель перспективы и реализовать свою собственную. Существует открытый API для запроса существующих перспектив (IWorkbench.getPerspectiveRegistry) и переключения перспектив (IWorkbenchPage.setPerspective), все что вам нужно для кодирования - это пользовательский интерфейс.