How can I override a module's file via hook_menu_alter()?
I think this happens because your alter hook does not update the value for $items['bonus']['module'], which was automatically set to 'things' when menu_router_build processed things_menu(). Try this:

$items['bonus']['module'] = 'bonus';
$items['bonus']['file path'] = '/includes/';
$items['bonus']['file'] = 'bonus.pages.inc';


or simply this, more like the things module does:

$items['bonus']['module'] = 'bonus';
$items['bonus']['file'] = 'includes/bonus.pages.inc';