It's an undocumented feature, so no guarantees that it will always work that way (and to ensure it works in current versions you need a bunch of conditions, scan in clustered index order and no parallelism at least)
Edit: The quirky update is undocumented (it depends on an implicit ordering of rows). The variable = expression = expression shown here is fully documented and supported.
Microsoft Certified Master: SQL Server, MVP, M.Sc (Comp Sci)
SQL In The Wild: Discussions on DB performance with occasional diversions into recoverability
We walk in the dark places no others will enter
We stand on the bridge and no one may pass