I’ve tried icu several times over the years, and its always been a few features short of TP premium. Things that I know used to be missing were workout libraries and training plans, and the ability to define structured workouts for export to Garmin. ICU also used to be very cycling specific, with “other” sports clearly added as an afterthought (many data fields had “Ride” in the name, even for swim or run workouts).
The lack of structured workout export to Garmin was always a deal-breaker for me, as I create everything as a structure workout, even steady-state runs. I typically include warm-up and cool-down “intervals” to keep me from skipping them. 
One feature I really like (in ICU, that TP does not have) is that I can create a structured workout from an existing recorded activity. So, if I go out and just do something random…and decide I really like it, I can simply drag that recorded workout into the library and it will auto-detect the durations and intensities and create a template that I can use for future planning. I can edit the template, as well.
I’ve been playing with it again over the last few days. Feature wise I think, ICU has now mostly surpassed TP, now. Everything I know that used to be missing is now present (see above). Plus ICU now provides the ability to define your own data custom fields and data streams. These can either be specific fields in the FIT file produced by device (but not standard), or they can be calculated from other data by writing JavaScript.
For example, I recreated the TP running Efficiency factor (Grade Adjusted speed / avg heart rate), as a real-time chart, interval summary field, and Activity Summary Field. It took me about 30m of fumbling around to figure out to do it.
The UI is stil a giant mess—typical of most engineer driven designs. TP UI is more refined/cleaner (but, still has its own issues…many of which have existed for a decade now). That said, ICU is very tailorable…much of the clutter can be hidden to clean it up a bit.
There’s no mobile app for ICU, but the web-front is responsive and looks pretty good on mobile…a few things run off the edge of my phone by a few pixels, but I haven’t found anything that makes it unusable (eg, an OK/Cancel button that’s not accessible).
I think its good enough now to try daily driving it for a while.