Isn't it only a matter of designing buttons that look like 'native' buttons?
Bem, mais ou menos, para botões. Mas isso pode ser mais difícil do que você imagina. Atualmente, os gráficos usados para representar os componentes da GUI não são tão simples quanto os bitmaps aleatórios que são esticados (já que eles não são muito bem dimensionados) - eles geralmente são gráficos vetoriais com muitos casos de canto programados neles ( então, quando o botão alcança a borda da tela, pode parecer um pouco diferente, por exemplo.) E, claro, você precisará de gráficos diferentes quando um botão é clicado. Por razões de direitos autorais, os desenvolvedores muitas vezes não podem usar apenas esses gráficos, então eles precisam ser recriados - e enquanto eles fazem um bom trabalho na maioria das vezes, inevitavelmente algumas coisas são perdidas dada a enorme variedade de componentes gráficos existentes. Isso é muito menos grave do que costumava ser - atualmente, se eu definir a aparência e o comportamento da plataforma padrão no Swing, noto muito pouco que pareça estranho.
Estou dizendo tudo isso com base no Swing, que é claro, um kit de ferramentas de GUI leve e não nativo. Você menciona especificamente que o SWT não parece nativo, o que é um pouco estranho, porque o SWT é nativo. É um kit de ferramentas que usa o JNI para chamar componentes nativos - portanto, se algo não parece certo, não é vai ser por causa da aparência e sensação.