Hola,
Sí, ese error del separador decimal es demasiado evidente y viene desde hace años. Esta reportado en Embarcadero para la versión 2010 (yo tengo la 2007); pero, quién lo reporta informa que incluso le pasa con la 2005. Como si fuera poco, otros reportes indican que vendría al menos desde la versión 7.
De hecho, hay mucha información en Internet respecto al problema. Por qué no lo arreglan ?. Sospecho que el método que usan para interactuar con el cliente DB2 se basa en cadenas de caracteres y no han llegado a un acuerdo con la gente de db2 para poder traer el dato en forma nativa o poder leer cual es el separador decimal que esté usando db2.
El work around es hacer coincidir los separadores decimales; pero, por alguna razón, nada de lo recomendado en los sitios de internet ha funcionado. Aún me quedan recursos e informaré la situación aquí
http://www.clubdelphi.com/foros/showthread.php?t=68958
Respecto a lo de que "políticamente" no tiene presentación es que Firebird ha sido nuestro motor para el desarrollo; pero, para producción se necesita uno más robusto. Se planteó db2 por lo gratis y se migró en tan solo minutos; después de eso, queda muy mal decir que debemos usar Firebird en vez de DB2 por un problema aparente tan simple.
POr otro lado, el caso dbExpress aplica también para llamar a reflexión. Es supuestamente la bandera de Delphi y por lo que he visto tampoco hay muchos que lo usen.