It's not that there's an alternative syntax for pure and nothrow, it's that (like immutable) they are both a storage class and attributes (the attribute form merely imbuing scoped declarations with the corresponding storage class). They should be listed in the attribute page, but aren't.
Comment #2 by issues.dlang — 2011-01-10T19:09:22Z
I would expect @pure and @nothrow to be going away. It was decided to go with pure and nothrow rather than @pure and @nothrow, so I don't see why the @ versions would be sticking around. We ended up with both, because it was debated as to what should use @ and what should be a keyword.
@safe, @trusted, and @system are all valid, as is @property. However, I can't think of any others at the moment which are actually currently supposed to have @ on the front.
And as for @ being a token, I'm not sure that it _is_ a token. I'd have to look at the lexer code to verify one way or another. Given the way that @ is used, I think that there's a decent chance that @safe, @trusted, @system, and @property are all considered tokens and @ isn't. I would like it to be though, since it would be necessary if we're ever going to get user-defined attributes.
Comment #3 by ellery-newcomer — 2011-01-22T13:06:41Z