Al menos hasta Firebird 1.5 no es posible realizar un Insert o Update que incluya un Select "al vuelo", como el de tu ejemplo. En casos así suele ser útil crear un procedimiento almacenado que reciba los parámetros necesarios y haga la operación correspondiente.
En cuanto a las caritas...