I have noticed that the Direct call has a "bug" as variables which are set on rules which trigger s.tl() persist and get tied up with my direct call rule (i.e. to fire a s.t()).
I have been battling trying to find an effective solution to try keep only the variables which are set on the template.
The above can be very challenging especially for end users who dont have any developer background.
It would be great to have DTM be more strict in terms of taking the variables which have been set within the tempalte and the editor (i.e. under the analytics tab). If this cannot be done, another option can be to offer the functionality to 'clear variables' when setting up any kind of rules.