In Emacs 24.3.1, kmacro-end-and-call-macro calls the macro repeatedly
making changes to all the repeated text up to the end of the file.
It's clear that neither `C-x' nor `C-x e' should be stored.
So not storing `C-x e' will not execute the same macro repeatedly.
This case is fixed now. Thanks for the bug report.
There is another case where instead of `C-x e'
typing more verbosely `M-x kmacro-end-and-call-macro RET'
will store this sequence in the macro.
But it's not a isearch specific problem as it can be reproduced
without isearch by the test case:
M-x kmacro-start-macro RET x x x x
M-x kmacro-end-and-call-macro RET
It doesn't stop after the first macro execution
because it stores M-x and the command in the macro:
Macro:
4*x ;; self-insert-command
M-x ;; execute-extended-command
kmacro-end-and-call-macro ;; self-insert-command * 25
This is a minor problem since nobody reported it
because there are more convenient keys to do the same
with `C-x ( x x x x C-x e' (or F3/F4).