I also, seem to be on a similar path. Started years ago writing, learning and rewriting lisp. Then graduated to VBA recognizing the cross application and document specific limitations of lisp. Was happy with VBA and yet started tinkering with .net and saw the rest of the API and the limitations and work arounds required under lisp and VBA.
The one drawback I saw with net is it managed code. By that, not capable to operate using forms from a network share unless each work station was configured showing it as trusted. Started playing in arx and to that end I am still learning. I was happy running in VBA, but IMHO I see the handwriting on the wall for MS continued support. Probably 5 years from one site that I don't readily recall. Just think what was available five years ago and the lack of stability we enjoyed then. So figured it was time to start to learn something new.
So, learning C++ and other facets of the autocad API. The one item that I always took for granted is memory management. It is a real pain cleaning up afterwards. But it is truly powerful. The best part is that it compiles to arx so it would appear that you would't have issues updating on a share, and other tinkering. Apparently 2007 supports unicodes, so it seems to have made things more difficult on the string side of the house. Had to learn more about w_char, TCHAR and ACHAR then I really ever wanted to know. Basic understanding and not much more at this point.
Language syntax is syntax. Some are easier than others. I have really learned alot from this site and others. There is quite a talent pool in this community. Manusoft.com has an excellent how to configuring VC 2005 for legacy support. Also additional info I have found at
http://through-the-interface.typepad.com/ . They don't spoon feed you, but it will definately teach you to fish.