Re: point #1, yes, that is correct. Be aware, however, that the TDD and TDDL are both actually part of the TSS. The TDDL layer sits between the TDD and the TCS (TCG Core Services layer).
Re: point #2, yes, again that is correct in a general sense (I might have used different terms or phrased it differently, but the gist is correct.)
Regarding your last statement, I think I understand what you mean but would offer the following:
The Microsoft CryptoAPI (MSCAPI) allows end-user application developers not to worry about the underlying implementation of it's calls. This is the point of component-based software engineering using interfaces...specifically, the behavior (implementation) of the MSCAPI Base Cryptographic Functions can be changed simply by switching the CSP's.