Are the BizTalk APIs regrading pipeline and adapters confusing?

I’ve always heard from customers and partners that Adapters and Pipeline interfaces of BizTalk Server aren’t well organized, and they seem to be COM API, not .NET API. For example, they usually use interface, not inheritance even when inheritance seems to be much more suitable. Or they don’t seem to follow .NET class design guideline from Microsoft. So, their namespace and assembly names are often confusing, and don’t match their real meanings and class names. I just made a table summarizing the interface, namespace, and assembly names for BizTalk newbie.

Thanks