Hola,
Según
leo aquí lo que ocurre con Opera es que trata de distinta forma (que otros navegadores) los eventos "onload" y "unload". Por otro lado, parece que "onbeforeunload" no es un evento estándar, y Opera no lo soporta. De este modo, la verdad es que sólo se me ocurre una cosa: no podríamos fiarnos de estos eventos para tareas críticas. Podrían valer a modo de advertencia, pero, nuestra aplicación no puede depender de estos eventos para algo que pudiera resultar en problemas.
Respecto de esto último que dices, no sé hasta qué punto podrías lograr desde tu página enterarte de cuando se cierre el navegador, sino es como hemos comentado aquí. A lo mejor tienes que replantearte el asunto, si, como dices, no va como tú esperas.