Utilice UTF8 como juego de caracteres para su base de datos Firebird. Esa es la única opción que admite todos los caracteres posibles, ya que UNICODE_FSS es una cosa del pasado.
Sin embargo, esto es ortogonal a su pregunta sobre la creación de programas Unicode con Delphi. Incluso para un nuevo programa Ansi Delphi usando UTF8 charset sería su mejor opción, ya que puede traducir programas Ansi (por ejemplo, usando GNU gettext para Delphi http://dybdahl.dk/dxgettext/) a otros idiomas, y solo con una base de datos UTF8 puede almacenar todo el texto que pueda ser enviado a la base de datos, dependiendo de la página de códigos de Windows. La alternativa sería usar diferentes conjuntos de caracteres de base de datos para diferentes implementaciones, y luego ya no se puede simplemente intercambiar archivos de bases de datos o migrar datos entre instalaciones sin primero recodificarlo.
Para su trabajo de desarrollo, asegúrese también de que su programa de administración de bases de datos funciona sin problemas con las bases de datos UTF8. Dado que la mayoría de ellos están escritos en Delphi, puede tener problemas, a menos que utilice controles con capacidad Unicode.
Pregunta similar y algunas experiencias: http://stackoverflow.com/questions/2302670/delphi-dbexpress-and-interbase-utf8-migration-steps-and-risks – mjn