Lo que pasa es que la utilidad de cada uno son 2 cosas distintas.
En cuanto a rapidez pues es mas rapido GET porque solo obtienes un registro, claro que necesitaras una llave que sea unica, es decir que sus valores no se repitan. Esto es, con GET no puedes buscar en una llave donde sus valores se repitan por ejemplo; no puedes buscar con GET un numero de cliente en una tabla de facturas porque para un mismo cliente puede haber infinidad de facturas pero si puedes buscar un numero de cliente en un catalogo de clientes porque el numero de clientes deberia ser unico.
SET lo usas cuando buscas un valor que puede repetirse por ejemplo las facturas con total mayor de 5000 en una tabla de facturas, todas las facturas de un cliente, todas las ventas de un vendedor, todas las ventas del dia. Obviamente cada una de estas busquedas deberia ser sobre una llave que contenga los campos en cuestion eso haria mas rapida la busqueda, que tambien puede hacer sobre llaves que no tengan los campos en cuestion pero eso lo haria mas lento.
Ejemplo de esto:
Tenemos las llave FAC:NCteKey que tiene solo el campo NCte, FAC:FcFacturaKey que tiene el campo FcFactura y la llave FAC:NCteFcFacturaKey que tiene los campos NCte y FcFactura.
Si quieres buscar las facturas de un cliente puedes utilizar SET(FAC:NCteKey, FAC:NCteKey) or SET(FAC:NCteFcFacturaKey, FAC:NCteFcFacturaKey) pero no SET(FAC:FcFacturaKey, FAC:FcFacturaKey) porque al utilizar las dos primeras formas puedes posicionarte directamente en el cliente en cuestion pero si utilizas la tercera forma tendrias que procesar por fecha y brincarte las facturas que no sean del cliente que buscas que seria la forma mas lenta pero se podria hacer.