Solo para fines informativos, puedo decirle que la creación del BigDecimal que regresa de la base de datos se realiza mediante la implementación del controlador JDBC propietario del método 'getBigDecimal' de la subclase 'ResultSet' específica de la base de datos.
Descubrí esto recorriendo el código fuente de Hibernate con un depurador, mientras intentaba encontrar la respuesta a mi propio pregunta .