Does a single rollback affect all transactions?
Yes commit and rollback behave differently in this respect.

Commit just decrements the @@trancount. Nothing is actually committed until that reaches zero.

Rollback will always rollback the transaction and set @@trancount to zero.

Just to be clear there is only one transaction going on, irrespective of the value of @@trancount. Nested transactions in SQL Server are a myth. See Paul Randal's blog post:

A SQL Server DBA myth a day: (26/30) nested transactions are real.