Si haces la función deberás documentarla MUY bien, para que en futuros usos no esperes el id del cliente y te devuelva el id de la persona. Se me ocurre por ejemplo cambiarle el nombre a InsertaClienteYDevuelveIdPersona(...)...
Habría que ver temas de optimización, pero si se utiliza solo de vez en cuando yo haría dos funciones:
Código Delphi
[-]
function InsertarCliente(cliente:Tcliente):integer;stdcall; function DameIdPersonaDeCliente(cliente:Tcliente):integer;stdcall;