Переменные активности - это и есть частный случай TLS, т.к. сама текущая активность получается именно через TLS - посмотрите как реализована функция Objects.ActiveObject и сколько раз она явно применяется в коде A2. А неявно она, как я понимаю, применяется в каждом обращении к методу или полю текущей активности.

Т.е. говорить о ненужности TLS абсолютно неправильно - она лежит в основе A2.

Конкретно мне она была нужна для отладочной печати, которая не должна зависеть от типа активного объекта. Во-первых, я не знаю, для любого ли процесса есть активный объект. Во-вторых, если да, то я не знаю, можно ли поменять базовый тип всех активных объектов. В-третьих, если я так поменяю, то это будет называться fragile base class и вообще плохая затея.

В отличие от этого, TLS не ломает никаких совместимостей.

Переменные модуля вообще не в тему для моей задачи.