I think it's more generaly termed that they are derrived from C, not C++. It seems to me the similarities to C are all much the same, but the differences (including C++) are all based on the purpose as to why the language was designed. But I may be wrong there.
I think also you would term Flash more a scripting language (
http://en.wikipedia.org/wiki/Scripting ) And yes, the source for HL are comprised of class and header files (to help organisation. You could probably theoretically put them all in one file. But that would make navigation rediculous) which are compiled into the dll.
The skills necessary to program mods for HL can be split into two broad catagories, syntax knowladge and structure knowladge. If you are familiar with a C derrived language (or the general concepts of similar programming languages) then you will be able to understand alot of what the code is doing through understanding the syntax, and easily be able to write valid code. However, the SDK's, as mentioned, are of a particular style and structure. You need to be able to grasp how the different componants fit together, and then plug into the engine to work as a whole. You need to understand how they have structured the componants accordingly etc. Alot of it is similar to how any SDK or API is written, some of it is unique and will be picked up through examination.
So while you may be familiar with the syntax, you may not be so familiar with the structure. Saying that, certainly the SDK for the first Half-Life (I don't know about the second) is fairly easy to pick up if you have a vague ideas as to what you are doing.