Bug on using positive rules and categories

Guys, in my "quest" for customization of the membership plugin to adapt it to my needs I found a bug. I was having great times using the actions and filters. With that I didn't need to touch the plugin code to make it work the way I need. But now I got stuck.

My situation was the following:

I have some access levels where I restrict contect by category. I used the positive rules, so members of that access level would have access to 3 categories. Two of these categories are used repeatedly in other access levels. For example:

Access Level 1
Positive rule -> category (checked: "Category 1", "Public Posts", "No Category")

Access Level 2
Positive rule -> category (checked: "Category 2", "Public Posts", "No Category")

And so on..

Then I created some posts that where marked only in the "Category 1". Every member with the "Access Level 1" should read it, but they were being redirected to the Protected content page.

Didn't make sense to me. So I started debuging to understand what I was missing.

After some hours of inspection I arrived at the file includes/default.rules.php. There we have the class M_Categories and the method check_positive_posts().
In that method I found a problem. The code was this way:

foreach($this->data as $cat_id) {
	if(!has_category( $cat_id, $post )) {
		$redirect = true;
	}
}

On $this->data I have the categories the member can view.
The way it is there, if the $post dont have ALL the categories listed on $this->data, I will be redirected. In other words, if I want to see my post described above I would need to put them inside all 3 categories of the Access Level. But it don't make sense. That is protected content, cant list it with the "Public Category" nor "No Category".

The way I found to fix it was as simple as changing the above lines with these ones:

if(!has_category( $this->data, $post )) {
       $redirect = true;
}

Notice: I removed the foreach and used the has_category as defined in the documentation page ( http://codex.wordpress.org/Function_Reference/has_category ) which says that the first argument can be an array of ids of terms.

Please, take note of that, try to evaluate the impacts of this change and update the plugin.

If the way I solved was not the right solution, please explain me why.

Thanks in advance.