Есть уже такие контролы, которые работают "по своему".
Вот например:
http://www.componentart.com
M>1. Обойти использование ViewState, а использовать другой, более производительный метод.
1. Используют свой CA State.
M>2. Создать возможность легкой разработки объектного представления серверного контрола на клиентской стороне и реализовать все возможности для простого взаимодействия контролов на клиенте, который будет не сильно уступать серверному.
2. Все свойства доступны как на сервере, так и на клиенте.
M>3. На основе пункта 2 реализовать AJAX-библиотеку, суть работы которой будет состоять не в обмене HTML-кодов и переправкой огромных ViewState с клиента на сервер, а в отсылке клиентским реализациям контролов только данных! Чтобы они на их основе обновляли свое представление.
3. Могут подгружать только данные, как со страниц, так и из веб сервисов.
Одна проблема — они далеко не легкие, при детальном рассмотрении жрут кучу памяти, в том числе и с leak'ами. На тяжелых приложениях это становится реально заметно. Так что проблема универсальность vs. скорость остается и в описанном сценарии, ИМХО.