Si no tengo mal entendido, solo se grabaran los valores por defecto si en cla sentencia SQL de INSERT que estas lanzando no estan identificados los campos en cuestion. Es decir, a ver si me explico mejor, si hacemos
insert into tabla (campo1, campo2, campo5) values (1,2,5)
los campos 3 y 4 cogeran sus valores por defecto, pero los demas no. El problema esta en que se suele utilizar componentes para hacer los inserts (yo me incluyo) como por ejemplo un TIBDataSet y, claro, en estos componentes se define la sentencia SQL de INSERT para todos los campos, por lo que nunca cogera los valores por defecto
Bueno, espero haberme explicado
