If a transaction filter is approved (to the necessary level of consensus) in a blockchain transaction, then any subsequent transaction in the chain must pass that filter, until (optionally) the filter is disapproved.
A callback is just a way for Smart Filter code to make a request to MultiChain, in order to get the information it needs.
For now one filter cannot reference another, or share code with another. Or at least not yet...