In the second variant you don't use a search command (like / ? or :s) but an arithmetic evaluation command. Then n does search, but _it_ doesn't change the latest search pattern. Don't know if the fact that ":let @/" doesn't alter search history must be regarded as a bug, a feature, or a legacy "thing that we don't particularly like but have to live with".
I didn't know if there was some sort of hook (like setting "setting" variables such as "&hls") that would have an immediate effect. It also seems weird that it would become the searched-for-thing, but not show up in the search history. Strangely, it does get saved in the viminfo if you do a "let", even though it doesn't make it into the search history. Go figure...
Bram's call ;-) -tim