Bueno, no entiendo del todo bien tu objetivo. Habría que ver un poco tu código para poder entenderlo.
No obstante eso, todavía hay algunos errores de concepto.
Lo que mencionás acerca de que los navegadores Firefox y Ópera aceptaban tu código con la invocación de la función en lugar de una referencia a la función como segundo argumento de addEventListener es un error de concepto: en ese caso no están asignando una función al evento (una función que sólo se ejecutará al producirse el evento) sino el retorno de una función que se ejecuta en el mismo momento en que se está creando el evento.
Se ve más claro en este ejemplo:
Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin título</title>
<script type="text/javascript">
function test(){
alert(1);
}
function test2(){
alert(2);
}
</script>
</head>
<body>
<div id="pp">hacer click</div>
<script type="text/javascript">
document.getElementById('pp').addEventListener('click',test,false);
</script>
<div id="pp2">hacer click</div>
<script type="text/javascript">
document.getElementById('pp2').addEventListener('click',test2(),false);
</script>
</body>
</html>
Si lo ejecutás, vas a ver que cuando el intérprete alcanza la línea que contiene test2() ejecuta de inmediato la función test2 (cosa que no sólo no es deseable normalmente sino que además, dependiendo de cómo haya sido esa función definida, puede traer errores), pero luego, si hacés click en el elemento cuyo id es pp2, la función no vuelve a ejecutarse. Y como verás, no depende de si la función tiene o no argumentos: el problema son los paréntesis, ya que el intérprete al "verlos" ejecutará la función de inmediato.
En cuanto a que el onload no está permitido en el tag image, supongo que te estarás refiriendo a xhtml y a usarlo como atributo, porque en javascript no hay problemas en usarlo (y creo que en HTML 5 incluso está permitido su uso como atributo, pero de esto no estoy seguro).
Edito:
Esta vez me ganó zerokilled