Hola Kripton, bueno, en mi caso no lo hago en C++ principalmente porque no tengo ni idea... :)
Mi razón en crear un ejecutable es que es más sencillo de utilizar para usuarios que no tienen ni idea de programación... incluso para aquellos a los que casi les cuesta hacer doble clic en un archivo.
Desde mi punto de vista tampoco es tan negativo la generación de ejecutables, el código fuente sigue siendo único y multiplataforma. Siempre puedes distribuir los Java en .JAR para todos, mientras que se puede ofrecer el .EXE para los más torpes o gandules de Windows... :D
¿Cómo es la técnica de los archivos .bat?