"Furthermore take a look at ChangeSets (admittedly tricky sometimes, but a nice concept) or Monticello for a free very good system for managing source code. Sure, free such advanced systems haven't been around in abundance - but I can't say I see them in other environments either really - they just rely in file based CM solutions non aware of the semantics of the language"
Uh, don't you see the simple solution as a good thing? My source code repository has files in 5 different languages checked in to it (C++, Java, PilRC, XML, and Perl), along with gifs, jpegs, wavs, and a host of other filetypes. Surely you don't expect my repository to know about all these languages, along with any random other one I happen to come across or invent in my spare time. Or perhaps you're saying that I should have different repositories for each file type? No, wait, maybe I should convert all my jpegs into C++?
Having everything be flat text files has some major advantages, which I feel are being overlooked. More commentary here.