Pues tengo muy poca experiencia con IBX, asi que no puedo confirmarte la manera en que hacen el locate.... por lo mismo, quizas solo este hablando burradas. Pero tener un DataSet abierto en el cliente supone mantener buffers con registros (a medida que se van insertando registros, se conservan en memoria en el cliente, ya que el dataset podria ser visto desde una rejilla, etc).
Si el componente hace el Locate en local, una llamada a este provocará que los datos ya existentes en el servidor viajen al cliente para determinar si el registro existe o no...
En fin, si solo tenes que insertar y actualizar datos (sin que se vean en ninguna parte durante el proceso, que debiera ser lo normal) tengo la impresión que será mas eficiente con select/insert/update como lo comenté.
Si podes monitorear la comunicación entre el cliente y el servidor, podrias vos mismo aclarar acá si lo que supongo es cierto o no.
Hasta luego.
