execute-keys also save the following registers, who are then restored when the commands have been executed: /, ", |, ^, @.
When you say execute-keys y:
Kakoune saves (among other things) the current value of the default yank register (the ") register
Kakoune yanks the current selection into the " register
execute-keys has executed its last key, so it restores (among other things) the original value of the " register.
You can get around this by using the -save-regs '' switch to execute-keys (that is, passing an empty string as the list of register names to be saved). Note that this clobbers the global " register every time somebody calls :create-snippets.