When comparing consider simple vs complex.
One factor to consider is keep it simple by using something built into emacs.
As you move from one computing platform to the next over time and prefer to use emacs using something native has advantages.
Some of the very powerful completion engines need a package manager to be installed, and the completion engine files to be installed and configured. Just the configuration may be more complex that everything you need to know to use a more basic tool. Much of this generally requires a computer be connected to the internet (to fetch packages) which may not be possible.
You may not want to repeat this procedure on every computing platform encountered (home/office desktop, lab machines, windows, Linux, machines on air-gaped networks etc). You will find little differences in the customization needed on different platforms which is a complicating factor.
The more complex 3rd party packages are also more prone to bugs and if you are a user you will find them (they are changing more frequently than emacs). Maybe you have an open source developers "happy to help" attitude or maybe you just want to get your job done.
Most of what is needed from a completion engine is complete files for find-file and select buffers for switch-buffer. The built in mechanisms tend to do this well stand-alone or with a simple configuration.
If users enjoy or need the complexity/power/features or are a emacs-lisp hobbyist then the more complex approaches might be worth it to you (if you are using emacs to develop emacs).
I work with people who use several other editors and none of them spend much time writing code for the editor or changing it for the platform they are on. I do spend the time. The others are free to spend time developing in the primary domain of concern (not developing/maintaining emacs).
I use icicles most of the time, and have found it very useful but difficult to learn, and maintain over a variety of computing environments for the past 10 years or so.
I have also used Ido.
Another users comments on icicles.
http://ergoemacs.org/misc/emacs_power_of_icicles.html