ninguna es mejor que otra.
lo que pasa es que se compila en modo debug para poder hacer debug... suena redundante pero asi es, sino compilas en modo debug no podras hacer seguimiento de los valores de las variables en un momento determinado, un ejecutable creado en modo debug es mas grande y mas lento y más grande que uno creado de alguno de los otros modos.
El modo release generalmente viene preconfigurado para mejorar el rendimiento y el tamaño del archivo.
Los otros dos son variantes de los anteriores.