This turns out to be a bug in the original ooDialog code:
::method AddListEntry unguarded
use arg id, data
if Arg(2,'o') = 1 | data = "DATA" then return -1
if Arg(2,'o') = 1 | data = "DATA"
is looking to see if arg 2 was omitted. But, "if arg(2, 'O') = 1" is sufficient.
The bug does not exist in trunk where many of the methods, including this one, have been updated.
The bug was brought to my attention on comp.lang.rexx.