There is a flaw in your logic:
The ‘!’ means the opposite. Your first line translates as:
Current User canNOT Access s2member_level1 -AND- User Is Logged in
This leaves only those with subscriber (or level 0), which are treated as the same thing.
Second line translates as:
Current User is s2Member_level0 -AND- current user can access ccap_bfsupporter capability -AND- current user canNOT access ccap_bfsupporter capability.
This logic easily overlaps because those with the second line are a subset of the first.
In WordPress (unless something has drastically changed in the last couple years), you cannot have multiple ROLES. While roles can be customized, each user is given one role (i.e. Subscriber, Editor, Author, Administrator, etc.) S2Member adds some roles (Level 1, 2, etc.) that sit slightly above the Subscriber role.
However, users can have multiple capabilities that are independent of their role. Each role has a default set of capabilities that each includes (like edit_posts, manage_options, etc.). S2member is able to add custom capabilities to individual users – which it looks like you are using in your second example.
I’d try the following:
For visitors:
[s2If !is_user_logged_in()]...[/s2If]
For ALL Subscribers/Level 0 Logged_In Users
[s2If !current_user_can(access_s2member_level1) AND is_user_logged_in()]...[/s2If]
For ALL Level 1 AND Higher users
[s2If current_user_can(access_s2member_level1)]...[/s2If]
For users with Custom Capability - regardless of level
[s2If current_user_can(access_s2member_ccap_pi_institution)]]...[/s2If]
For users who have the first capability but NOT the second
[s2If current_user_can(access_s2member_ccap_bfsupporter) AND !current_user_can(access_s2member_ccap_pi_institution)]...[/s2If]
I suspect you can figure out how to get more creative if necessary. Just be careful of that exclamation point. It can be easy to miss!
When I was working to figure out all the nuances of my membership site, I opted to have two membership levels along with all the custom capabilities. Level 1 was a basic membership that was above a free subscriber (and any ccap purchase promoted that user’s level). Level 2 was an all access package that was given all available ccap access.
Not sure what your scenario is, but hope these thoughts help.
~Cam