No es fácil, porque hay diversos casos y el contexto influye también.
Cuando lo que expresa el adjetivo es una cualidad natural del nombre, el significado no cambia.
El carbón negro, el negro carbón.
Pero en otros casos sí cambia
El cielo azul (the blue sky), pero el azul cielo es un tipo de color azul.
En general, el adjetivo delante del nombre se refiere directamente al nombre al que acompaña y el adjetivo detrás del nombre se refiere a la clase, a la especie, a la que pertenece el nombre.
En tu ejemplo:
Una buena amiga = buena como amiga
Una amiga buena = buena como persona (la especie a la que pertenece es "personas")
Un gran poeta = grande como poeta
Un poeta grande = grande como persona (la clase a la que pertenece es "personas"). Pero en este caso, como normalmente no hablamos de si los poetas son grandes de tamaño o pequeños, tiene también el significado de grande como poeta ( a no ser que lo digas con una foto de un poeta enorme de tamaño).
Como ves, no es fácil....el uso está por encima de las reglas. Las reglas te pueden servir en general, pero siempre habrá casos (habituales) en que no funcionen.