Лично, я пытаюсь всегда использовать это при обращении к членским переменным. Это помогает разъяснить код и сделать его более читаемым. Даже если нет никакой неоднозначности, кто-то прочитывающий мой код впервые не знает, что, но если они видят это используемый последовательно, они будут знать, смотрят ли они на членскую переменную или нет.
С помощью flex вы можете использовать % option reentrant
и с bison % pure-parser
для генерации реентерабельного кода, который не имеет глобальных данных. Вам все равно может потребоваться какая-то синхронизация, чтобы предотвратить одновременное использование одними и теми же блоками данных несколькими потоками.