While i'm not new to c++, i'm not a guru by any means, but i'll try my best to help you out. In response to your questions:
1.) Your compiler will tell you when you try to compile of you are trying to use a variable that hasn't been intialized, so you really don't have to worry about screwing up here.
2.) I'm not quite sure exactly what your defining as a 'system'; however, inside a class, or you can have multiple function calls. Classes are like declaring types in DBPro, but their much more indepth in c++. You can't declare another function inside a function as far as I know. This one is a little hard to answer with a short answer because there are so many possibilities in c++ such as structs, unions, classes, templates, etc.
3.) The good news here is that passing variables in c++ is almost the same as in DbPro. The only difference is that when you use the function you have to make sure it's declared at the top of the file your currently in. As far as returning your data, all you have to do is use the return command just as in DbPro, and with classes you just put the return statement outside of the class followed by a semicolon.
4.) Glad you asked, Classes are just like Types in DbPro. I like to think of them as declaring your own data type. You can declare things like integers, doubles, floats and things like that, and after you create a class with it's own data members you can use that like it's own data type. Just check your DbPro manual to refresh your memory. Granted Classes are a lot more in depth than Types, but I could go on forever about that.
5.) I'm using VS 2003 with my Dark SDK, and it's going very well so far. There have been talks with updating the next version so that it can run with DevC++ and possibly VS 2005. I hope so, cause the 2005 version is free right now. The only issures your likely to run into with writing in Dark SDK are probably from the DarkSDK.
6.) Sadly no. Things like BLUE gui were developed specifically for DbPro, and since c++ is run from within a totally separate program there is no correspondance. Now other things like developing with plugins so that your app can use the plugins should work. If you have a plugin that does calculations, or takes advantage of the Windows API then they should still work because they're all compiled into a universal DLL.
Hoped I helped a little bit. If you have any questions just e-mail me.
Happy coding!
The scarecrow has no mind, but serves its function well.