Affiliate reward cap

Looks like there is a setting to set affiliate rewards indefinetly instead of just for the one-time signup. This is done by adding define('AFFILIATE_PAYONCE', 'no');

1) What happens if a user switches plans, does the affiliate reward also adjust accordingly?

2) Instead of turning on affiliate rewards indefinitely is there a way to set a cap based on several months of monetary reward value.
For example:
a) Affiliates will get a reward for 6 months of when a user is signed up.
b) Or an affiliate will get up to $50 in reward for however long the user is signed up for a plan.