Не понятно, что SII не нравится в создании локальной неквалифицированной версии идентификатора, ведь это:
а) максимально короткий по тексту в исходнике способ, который не мозолит глаза, ведь в случае с какими-то директивами нужно было бы указывать некий диапазон (т.е. иметь открывающий и закрывающий тэг директивы, что дает куда больше лишнего текста);
б) не сует палки в колеса оптимизатору, который будет работать максимально эффективно, если как раз руками не расставлять кускам кода "тут оптимизировать, а тут нет";
в) дает возможность обращаться как к volatile-версии, так и к неквалифицированной локальной копии в тех местах, где это крайне необходимо. А нужно это там, где volatile-переменная используется в режиме read-read-...-modify-write.
А еще же ведь бывают ситуации, где в одной операции используется несколько volatile-объектов, и доступ к ним необходимо сериализовать. Там тоже без чтения в локальную копию не обойтись.