Estimados
Luego de muchas horas de pruebas tengo que admitir que Uds tenían razón y no era un problema de buenas prácticas sino de un bug en el código.
En algunos casos muy particulares se daba que buscaba un elemento de un array por encima de su largo total.
Más allá de el agradecimiento y el reconocimiento de saberme equivocado, quise agregar es te post para decirle que en el medio del análisis (y también era importante) recordé haber tenido un problema hace años por referirme a arrays dinámicos en otro módulo de código sin utilizar Sharemem.
Esto no solucionó totalmente mi problema pero sí en un 80%. Lo digo porque los errores que da esta omisión no se ven en el código y el que no lo sabe solo encuentra la solución de casualidad (como en mi caso).
Por si les interesa les dejo un interesante artículo al respecto (lamentablemente no encontré un equivalente en español):
http://delphi.about.com/od/objectpas.../aa103003b.htm