think you meant active and inactive as in this post:
if yes you are right. if you set the piston to never subscribe it will only be executed when called by another piston or some other way. remember not to pause the piston though. paused pistons dont get executed even when executed by being called.
the entire piston is always evaluated but off course this evaluation honors all conditions in the piston. so if sections of the piston should not be evaluated put those blocks of code under conditions which will cause them to be skipped based on those conditions.