It works more or less as described, where you list off all the schools you want in order of preference. It runs lotteries for each of them in parallel and you get the highest listed one you win. But then it does one more thing: If it finds mutually advantageous swaps, it does so automatically and instantly. In other words, it's not up to or necessary for the student to do it manually.
In fact this feature is detailed by the Ivy League team that put it together, including Alvin Roth, as early as 2010.[2] So while this article is well written it seems to give a less than complete picture. Why did Amsterdam not adopt this feature?
P.S. There is much to be said about the SF lottery system which is a fun / highly stressful topic for nerds and parents. If you like these kinds of problems I encourage you to take a look. It also tries to solve for giving preferences to neighborhood schools and disadvantaged families, while also offering special language and K-8 programs that serve the whole city fairly. The goal is to eliminate strategizing as much as possible, but it's very interesting to see people figure out some hacks.
[1] http://www.sfusd.edu/en/assets/sfusd-staff/enroll/files/2012...
[2] http://web.stanford.edu/~niederle/SFUSDBoardPresentationFeb....