Perhaps I can explain it better with a code example:
Callable<String> task = new Echo(input);
String key = "foo";
IMap map1 = hz.getMap("m1");
IMap map2 = hz.getMap("m2");
map1.put(key,1);
map2.put(key,2);
IExecutorService executorService = hz.getExecutorService("default");
Future<String> future = executorService.submitToKeyOwner(task, key);
String echoResult = future.get();
As you can see there are 2 maps, map1 and map2.
Both of these maps have a map entry with the same key 'foo' but different values.
But these 2 map entries will end up in the same partition (so on the same member) because the key is used to determine the partition.
In the last few lines the task is send to the key owner, in this case we are going to send the task to the member that owns key 'foo'. So the task is going to be send to the same machine as where both the map entries are stored.
I have not checked the discussion you had on support; this is an answer to your original question you posted here on stack overflow.