mini_root чтоб софт был кросплатформеннын нужно не много. Поделить все программы на 2 части - клиентскую и серверную. И о чудо. GUI рисуй хоть акварелью на basic, хуже не будет.
А серверная часть автоматом будет кроссплатформенной? А если единственный нормальный гуй будет только под винду? А как будет осуществляться взаимодействие между клиентом и сервером? IIOP - почти мертв вместе с корбой, RMI - завязан на жабу, .NET Remoting на нет, единственный приемлемый вариант - веб сервисы, но там тоже куча вещей на которые можно напороться - разное отображение сложных типов, отсутствие сессий на уровне протокола и вообще отсутствие какой либо спецификации для !реализации! сервисов (существующие стандарты описывают только интерфейсы и взаимодействие - SOAP, WSDL, UDDI, WS-* и пр.) - нету четкого описания таких вещей как жизненный цикл и пр. (сравните со спецификацией EJB).
Наконец, что делать если приложение целиком настольное - например, тот же самый фотожоп. Сразу скажу - AJAX в существующем виде это редкое извращение, к тому же наличие веб клиента на снимает вопрос о кросплатформенности серверной части.
Тем кто вспомнит про Qt рекомендую сразу подумать над реализацией серверной части, а особенно над тем, как подружить с ней клиента нарисованного акварелью на VB.
Единственный на сегодня вариант для БЫСТРОЙ разработки кроссплатформенного софта это жаба или моно/нет, но там сразу всплывает куча оговорок.
Собственно распределение приложения не делает его кроссплатформенным - оно просто позволяет взаимодействовать разным частям, написанным под разные платформы, с помощью общих протоколов.
P.S. А так, да, в принципе все довольно просто....