Nitpicky, but since we're splitting over two lines, I think we may as well introduce a temporary `limit_choices_to` variable:

    limit_choices_to = kwargs.pop('limit_choices_to', None)
    kwargs['rel'] = GenericRel(self, to, limit_choices_to=limit_choices_to)