ARC will generate a jungle of memory management calls and then optimize away what it determines aren't needed. It's a very different process from the manual memory management of old. I make no claims about understanding how the compiler works in that regard, and that's the beauty of it; you don't have to understand.
Think of ARC as a magic black box that makes one promise: if you follow the rules, it will automatically clean up after you eventually. It may not be at the very earliest moment possible, but it will happen.
I've assumed you're using LLVM 4.2 (ships with Xcode 4.6), and I tested it out. The object does indeed end up in an autorelease pool. This is an example of a case where ARC could do better, because the autorelease isn't actually needed.
Following that thought, I also tried it on the LLVM 5.0 compiler beta, and the behavior is different: the object is immediately deallocated on a = nil
as you would expect. This is a good example of ARC getting smarter while still keeping the same basic promise.