I have used 16U2 also as a programmer (that is an advantage), however, 16U2 may sometimes mess up width drivers (it doesnt want to recognize or load correct drivers). On the other side, FTDI has some kind of standard drivers, so there should be no problems with them (advantage of FTDI) but I am not sure if you can use it for anything else.
Also, if you are creating your own product, you may want to go with FTDI chip as I am not sure how it is with USB vendor ID registration for your own products with 16U2 (if you use 16U2, you may need to have your own USB Vendor ID): https://www.usb.org/getting-vendor-id
PS: If you are not sure what does it mean USB Vendor ID, basically if you are creating an USB device product, each USB device need to have a unique ID - and you need to buy this vendor ID for your company. The thing is, once you have your own USB Vendor ID you may need to develop also your own drivers (I believe, the right USB drivers are loaded and recognized based on USB ID - so you may need to deliver your own USB drivers with your USB product).