Thats been my experience as well. On my road race bikes that had o-ring or x-ring chains I ran WD-40 on the chains for a season, nothing else. A spritz and wipe down before every race. While the chains were just fine with this the rear sprockets (aluminum) wore badly. Next season I used chain wax, zero sprocket wear but I hated the way it caked on over time, then switched to Dupont Multi Use or Chain Saver and stayed there, nice and clean. Still use it on my bicycle.
Anyway, it was an eye opener that proved WD40 really isn't much of a lube, really more of a cleaner. Well and a water displacer. I have trouble finding a use for it these days.