Just anecdotally, my Nexus 9 does not even have the fstrim command anymore, nor do I see any discard options in the fstab. My Nexus 7 2012 had lots of interest about fstrim improving performance, but not my Nexus 9. I assumed the TRIM issue had disappeared.
Also, the OP is right: TRIM works by telling the SSD which blocks that were previously used are now unused, so that the SSD, at a lower level, can eventually erase the larger flash sector. There is literally no way for the SSD to know this intrinsically because SSDs do not expose a filesystem interface.
Another quick Googling seems to say improved garbage collection (in the SSD itself) has lessened the need for fstrim.
Hopefully someone who is knowledgeable will chime in.
You're correct in that trim is less necessary if a drive has good garbage collection. I don't know anything about the implementation of either, but I would expect trim to be easier, cheaper and better than GC. It seems like GC would require work to discover/remember things provided as input w/ trim. I've assumed that GC was only implemented by vendors in their controllers because trim wasn't available in the popular OSs yet, and/or because their controllers were already doing most of the work required by GC anyway so it was cheap to implement.
Finally, you can't equate SSDs with the SD or eMMC used in some of the phones/tablets. Yes it's all flash, but an SSD is typically multi-channel with many flash modules, a DRAM cache and a much more sophisticated controller implementing a standard storage interface (AHCI/SATA or SAS or NVMe). eMMC and SD are much simpler, cheaper and slower.
# fsck / | grep frag 6395 files, 106651 used, 409612 free (300 frags, 51164 blocks, 0.1% fragmentation)
# fsck /usr | grep frag 396741 files, 4832173 used, 19820289 free (4953 frags, 2476917 blocks, 0.0% fragmentation)
# fsck /home | grep frag 1192199 files, 27780639 used, 3176062 free (216374 frags, 369961 blocks, 0.7% fragmentation)