Follows is data I just pulled from the completed reference samples in the VS SDK:
The C++ and C# Package samples are included just for completeness as they not feature equivalent, because the C# Package sample has multiple implementations of packages, where as the C++ Package sample only has one that has all features of the different C# examples.
The likely reason why the C++ Tool Window and C++ Menus and Commands samples are smaller then the C# equivalents are due to the guiding principles of VSL, which allows for VSL e added to and changed as needed to faciliate re-use. Thus, anything that looked re-useable in the C++ samples was pushed up into VSL, where as in the C# samples there is code that could possibly be pushed into an assembly for re-use.
That said, personally I think that C++ templates, multiple inheritance, and the C pre-processor provide an advantage over C# when it comes to re-using code, and that much of the purported productivity gain of C# (and Java) over C++ has more to do with the available APIs rather then language differences, in that the .Net Framework is simply a cleaner API to code to then the raw Win32 API's; however, that difference lessens when comparing the C++ libararies (ATL, WTL, C++ Standard Library, and MFC) to the .Net Framework. I think the same is also true when comparing VSL to the MPF although their feature sets are somewhat divergent currently since VSL has no project support and MPF has no editor support. To that end I may look into writing a C++/CLI project sample that utilizes MPF support where it exists for projects now, rather then providing direct support in VSL (which will be some number of months worth of work), but I'm not sure how well that will work out since C++/CLI doesn't support multiple inheritance, so the class inheriting from the MPF Project class will only be able to inherit from that one class.