When replacing large server side generated structures with JavaScript generated elements, I found the “new” style of Prototype very convenient:

new Element('div', {
                 'class':'tooltip',
                 'style':'height: '+tooltipHeight+'px;',
                 'onClick': 'closeTooltip()'
                 })
            .update(tooltipText);

What I did not notice that this doesn’t work in all browsers. When then, after a while, checking cross browser compatibility, I wondered why the closeTooltip method was not called. It was called ok in Firefox. It shouldn’t have worked in Firefox, because it is actually the wrong way to register an event listener.
The correct way is:

new Element('div', {
                 'class':'tooltip',
                 'style':'height: '+tooltipHeight+'px;'
                 })
            .update(tooltipText)
            .observe('click',closeTooltip);

I assume that Firefox does scan the attributes of JavasScript generated nodes for event handling code, while the Internet Explorer does not.
The W3C DOM Level 2 Specification on event listeners says:

In order to achieve compatibility with HTML 4.0, implementors may view the setting of attributes which represent event handlers as the creation and registration of an EventListener on the EventTarget.

While all browsers do that consistently for generated HTML, it seems that it does not apply to JavaScript generated elements.

Perhaps Prototype people could add a note to the Element documentation (or document writeAttribute at all :-) )