Тогда я бы выбрал вариант 2. Вам не понадобится слишком много времени (надеюсь), чтобы перенести библиотеки на Compact Framework, при условии, что вы имеете дело только с сокетами и т. Д., С которыми вы имеете дело, тогда я уверен, что CF справится с этим отлично.
РЕДАКТИРОВАТЬ: Единственные проблемы, которые вы будете иметь с вариантом 2, это если вы используете какие-либо функции .Net, которые не в CF. Если это так, вы обычно сможете найти его в OpenNETCF.
Вам нужно будет создать новый графический интерфейс, но при условии, что вы хорошо закодировали свои библиотеки, это просто случай назначения методов / событий, где это применимо, на вашем устройстве.
Я бы сказал, что вариант 3 - лучший вариант - он значительно расширяет вашу клиентскую базу, особенно с ростом числа пользователей WM и iPhone.