"Check Out" doesn't mean Check Out
One thing that confused me quite a bit with Subversion and Team System is that
check out doesn't really mean "check out" in the traditional sense, as in "I just checked that book out from the library".

Korby Parnell has a
great explanation of Check Out, highlighting the differences in Check Out behavior between VSTS and VSS:
| Visual SourceSafe |
Team Foundation |
1. Gets the latest database version of the file -- or the pinned version, if it exists -- to your working folder. 2. Overwrites the working copy of the gotten file if, as is usually the case, one already exists and is marked Read-only. 3. Makes your working copy of the file writable. |
Makes your workspace version of the file writable. |
Yesterday, I was sitting in a Team Foundation usability review in which somebody suggested that we should change CHECKOUT to EDIT in order to make it clear to users that in Team Foundation, to check out == to make writable and nothing more.
Check out, in modern source control systems, has nothing in common with the library notion of checkouts.
The real synonym for "Check Out" is "Hey, I might want to edit this".So when you're looking at a bunch of VSTS project files in the filesystem, the writable files have been checked out. The read only files have not.
It's questionable whether that's even necessary. I wouldn't mind if VSTS left everything writable and then automatically reconciled all the files on disk periodically. That would make it a lot easier to
change files outside the Visual Studio IDE.