How to reproduce from emacs -Q:
(setq enable-recursive-minibuffers t)
(setq icomplete-show-matches-on-no-input t)
M-x icomplete-mode RET
C-x C-f
[Icomplete now exhibits some filenames in the minibuffer]
M-:
[Icomplete shouldn’t exhibit anything here but it still
exhibits the filenames from the previous step and even
allows you to complete them with C-j]
You can replace C-x C-f with other similar commands, e.g., C-x b or M-x.
I’m not sure if this bug comes from how Icomplete configures itself or
the implementation of recursive minibuffers. It appears that
icomplete-simple-completing-p returns t when the M-: is happening in a
recursive minibuffer, even though it should return nil so that Icomplete
doesn’t configure itself.
If the M-: is not in a recursive minibuffer, everything is OK since
icomplete-simple-completing-p returns nil.