Hola:
Swing tiene por defecto su propio estilo (metal), pero se puede configurar para que coja el estilo del sistema operativo en el que se ejecute el programa
y ya tenemos swing con el mismo aspecto que cualquier otra ventana del sistema operativo. Es más, según arranquemos el programa en windows o linux, cambiará su aspecto sin tocar nada.
AWT está muy viejo (aunque sigue por debajo). Antes tenía sentido usarlo porque no todos tenían una versión de java con Swing, recién salido, y así se aseguraba compatibilidad con más gente .... pero swing lleva en java desde la versión 1.2 .... no creo que queden muchas versiones java anteriores corriendo por ahí.
En cuanto a complejidad al programarlo, es como todo, una vez se aprende no es tan complicado.
Se bueno.