Um argumento contra a produção de uma estrutura de plataforma cruzada é que ela sempre será direcionada para o menor denominador comum - os clientes da estrutura desejam escrever código apenas uma vez e rodar 'em todos os lugares' suportados. Portanto, uma incrível plataforma de hardware se pareceria com qualquer outra plataforma que execute essa estrutura, pois você não pode aproveitar os recursos específicos da plataforma.
Com o tempo, infelizmente, isso resulta em estruturas inclinadas para a plataforma mais popular e no suporte de hackers para outras plataformas, ou apenas cortando-as quando o orçamento / popularidade acaba.
Uma maneira de capitalizar as habilidades específicas da plataforma é ter algo como uma #if PLATFORM_FEATURE_X
construção em torno de todas as verificações específicas de código ou tempo de execução equivalente, o que resulta em inchaço do código. Isso fica entediante rapidamente, pois as variantes da mesma plataforma precisarão de tratamento específico. Por exemplo, alguns XBox v1 não tinham disco rígido, portanto, jogos usando ferramentas de plataforma cruzada não podiam usá-lo para cache, em comparação com uma versão para PC onde você pode garantir um disco rígido.
Para aplicativos de Desktop / Produtividade, a aparência da plataforma parece ser importante, mas muitos aplicativos têm seu próprio estilo; portanto, não há problema em ter a mesma aparência em todas as plataformas, por exemplo, aplicativos criados com o AIR.
Os fornecedores de hardware como Apple, Sony, Nintendo e Toshiba desejam garantir que seus produtos façam algo para se diferenciar da concorrência, por exemplo, toque, acelerômetros / gryoscopes, Blu-Ray, exibição em 3D. É improvável que alguma vez exista uma plataforma com todos os recursos de todos os concorrentes reunidos em um (devido ao custo e à complexidade), para que um deles vença.