In some cases, I use it as the “last” thing I do so the list of matching (or not) devices is available to other pistons. E.G I manage my Sonos via multiple Virtual Switches (1 per Station) connected via IFTTT and wrote a piston to turn the other Stations/Virtual Switches OFF every time a new one is turned on. At the end I do a Matching to write to a NowPlaying variable that I want to be available in other pistons.
Same with Presence. I have a global variable for each of the list of who is home and who is not so it is accessible in other places. Not being able to use a global variable just seems to add extra overhead and extra steps.
Thanks.