Hola Pedro, aca algunas respuestas a tus dudas, espero puedan ser de ayuda.
1. En cuanto a si es una buena opción para trabajar en producción aun tengo mis dudas apesar que lo uso en una web que estoy desarrollando con unos amigos. Hay momentos en los que el cartucho se reinicia y tengo que iniciar la app a mano, creo que eso lo podría solucionar con alguna tarea del tipo cron para que inicie la app en caso se haya "caido", aun no pruebo esa configuración pero será cuestión de tiempo que lo haga.
2. Sobre las imagenes en el servidor, creo que si es posible solo sería cuestión de que indiques en tu archivo routes que sección deseas que sea pública para que muestre tu imagen o en todo caso crear un controller que devuelva esa imagen. En lo particular para el tema de imagenes preferiría no usar el disco del openshift debido a que solo se tienen 4GB (o algo por ahi) que son compartidos con la base de datos, para el caso de almacenamiento de imagenes creo que sería buena idea usar algun servicio como photobucket, dropbox, etc para almacenar las imagenes, claro eso ya seria desarrollar un plugin :)
3. Sobre el message.properties, te recomiendo que sobreescribas los valores en el message.properties que se genera en tu carpeta conf, al menos asi me funciona.
4. Creo que este punto tiene que ver con el primer punto que describo, hay veces en las que el servicio se "cae" pero por lo general es estable. Si el negocio que piensas implementar requiere de algo cercano al 100% de disponibilidad ahi deberías de usar algún otro servicio o ver como va el openshift de paga.
Hace un tiempo un amigo hizo una pequeña prueba de estres a ver si lograba una caida de la web que desarrollamos pero no logró su cometido o no al menos con la carga que planteo inicialmente (si más no recuerdo eran 50 usuarios ejecutando 100 consultas a la aplicación).
Espero te pueda servir!
--
Saludos cordiales,
Jose Luis Manrique Cabana