Calculate bonuses for users
Treat bonuses as fields, and use Computed Field to manage calculations:


  Computed Field is a very powerful CCK field module that lets you add a custom "computed fields" to your content types. These computed fields are populated with values that you define via PHP code. You may draw on anything available to Drupal, including other fields, the current user, database tables, you name it. (Feeling the power yet? :) ) You can also choose whether to store your computed field values in the database with other content fields, or have them "calculated" on the fly during node views. (Although you should note that Views use requires database stored values.) This field is literally the Swiss Army knife of CCK fields. So start cooking up your PHP based values!


In user's profile, keep an Entity Reference to all users that registered from his links or gave his name at registration. Use simple recursion or deep scan to make actual computation, and you're there.