А зачем перезагружать классы? Можно просто прислать пакет и имя класса, а также указать, какой метод в этом классе надо выполнить (Reflection в помощь). Вот и всё. Единственный способ обхода такой защиты, который мне приходит в голову - это перехват получаемого байт-кода, поиск части, отвечающей за ответ серверу (а она может быть всегда разная и находиться в любой точке класса), и выполнение только оной.
P.S. У меня есть ещё идея, как можно заставить сервер/клиент выполнять любой код, но я пока не нашёл мода, в пакете которого передавался бы объект, а на принимающей стороне вызывался какой-либо метод из экземпляра полученного объекта.