I'm on 24.5, and I don't know how it was in the past, but Emacs' default minibuffer reading functionality is good enough that Ido, Ivy, Helm or whatnot seem superfluous to me. I can type
C-x C-f ~/Git/projectx/src/ding/~/.xombrero/runtime//etc/fstab RET
it will do the correct thing, and it will give visual feedback. Also I can type
M-x rev-bu RET
and it will run revert-buffer, and if I type TAB instead of RET, it will complete to actual command name. It will ignore case in completions if these variables are set: ;; Ignore case when completing file names in minibuffer.
read-file-name-completion-ignore-case t
read-buffer-completion-ignore-case t
completion-ignore-case t
Also an indispensable config: enable-recursive-minibuffers t
What does them tools provide that can't be easily done by these? And ido fails when entering a TRAMP file name, so one has to hit C-f in minibuf to drop to the original prompt.