score:6
The point of the Schengen agreement was to abolish border checks and create a single (short-stay) visa policy, which has mostly been achieved, but not necessarily to create actionable rights for non-EU citizens. There is therefore no “right to free movement” in the Schengen area as such. There is something called the “freedom of movement” in the European Union but it only applies to EU citizens and their family and is wholly unrelated to the Schengen area.
If that wasn't complicated enough, there are many exceptions and complex rules for corner cases like asylum seekers, diplomat or service passport holders or holders of special travels documents (including stateless people). The rules that apply to all these have not been harmonised. So there are no border checks between Schengen countries but that does not mean that everybody is allowed to cross internal borders.
And the possibility to issue a “limited territorial validity“ visa, only valid for some countries, was in the Schengen convention from the start (and now in article 25 of the Schengen visa code) so that's another perfectly legal restriction on movement within the Schengen area.
Incidentally, there are currently some serious breaches of the Schengen regulations (e.g. the way France currently treats the border with Italy, with frequent, albeit ostensibly random, checks and blatantly illegal removals of potential asylum seekers back to Italy without going through the proper channels created by the Dublin system). But the whole thing is so politically sensitive that nobody is doing anything about it (theoretically the EU Commission could initiate infringement proceedings against France but they have stayed well clear of the issue).