I usually don't like the ANSI join syntax, as it always seems more cumbersome - especially when joining multiple tables (not to mention I've never figured out a decent way to do the indentation). In this case, though, the ANSI syntax should clarify which self is being updated:
UPDATE atable\nSET afield = parent.afield\nFROM \n atable child\n INNER JOIN atable parent\n ON child.ParentID = parent.SelfID