Is it possible that Zeos based TDataset descendants recognize CHAR(16) CHARACTER SET OCTETS column type as TGuidField instead of TBytesField? The CHAR(16) CHARACTER SET OCTETS is a recommended way for Interbase/Firebird to store UUID values.

it is possible - yes. But since CHAR(16) CHARACTER SET OCTETS also could be something else, it is unlikely to get implemented. One could implement a switch for specifically enabling a behaviour like this. If you want to try to implement this, I will help you as good as I can.