I thought it was supposed to all 'full' access of one schema to the other
Where did you get the idea that objects (aside from roles) ever get privileges on other objects? Or did you also create roles "a" and "b" and are just using the wrong terminology here?
There is also no such thing as permissions on one type of object somehow affecting your privileges on other object types. Your privileges on schemas will not influence (directly) your permissions on tables. Neither to grant additional privileges or to block them - say if you don't have usage on schema but do have select on a contained table. Corner-cases that do behave this way notwithstanding - it isn't reliable.