Само за информация мога да ви кажа, че създаването на BigDecimal, връщащ се от базата данни, се извършва от собствения JDBC драйвер, който внедрява метода 'getBigDecimal' на специфичния за базата данни подклас 'ResultSet'.
Открих това, като преминах през изходния код на Hibernate с дебъгер, докато се опитвах да намеря отговора на моя собствен въпрос .