Well one thing missing is ENV{ID_MM_DEVICE_IGNORE}="1" for /dev/ttyACM devices. This should really be the default, IMHO. Otherwise Linux tries to send AT commands to what it thinks is a modem device, but which is probably a serial port.
There is more: a nice property of FTDI devices is that they have unique serial numbers. So if you want specific cables to match to specific device names you can do it with ATTRS{serial}=="A106YEUY", SYMLINK+="my_special_device"
On the other hand, FTDI is ruined by its own success. Lattice Diamond (an FPGA tool) takes over all FTDI devices. So it's a good idea to keep a CP2102 or Prolific USB to serial adapter just in case you want a serial port and an FPGA programmer on the same system.
There is more: a nice property of FTDI devices is that they have unique serial numbers. So if you want specific cables to match to specific device names you can do it with ATTRS{serial}=="A106YEUY", SYMLINK+="my_special_device"
On the other hand, FTDI is ruined by its own success. Lattice Diamond (an FPGA tool) takes over all FTDI devices. So it's a good idea to keep a CP2102 or Prolific USB to serial adapter just in case you want a serial port and an FPGA programmer on the same system.