go-kite, we are mostly in agreement
If you re-read my post to dig space carefully, you will see that you have just re-iterated and supported my points by copying those text snippets from pages 16 - 21 of the TSS 1.1 specification.
If you read those pages again very carefully, you will notice that it does not state anywhere that the TPM vendor is responsible for the actual implementation of the TDDL. It says that the TPM vendor is responsible for defining the interface (TDDi) between the TDD and TDDL. Once again, there is a big difference between an interface and code that implements that interface - they are two separate concepts. As long as that interface is made public, anyone could implement their own TDDL for that vendor's TDD/TPM combination.
The TDDLi is implemented by the TDDL. It allows the the next layer up, the TCS layer, to communicate consistently with TDDL's from different vendors. The interface we are discussing is the TDDi interface, which is defined by each TPM vendor.
To your point, I don't know the implementation details of the NTRU TDDL layer, perhaps they have merely aggregated the TDDL's from the various TPM vendors and ship them as part of their CTSS product -- but I doubt it. Perhaps they have aggregated some and written others, or perhaps they have written one TDDL that supports the TDDi's from all the current vendors. We would have to ask someone at NTRU to be sure. This is the crux of the issue, and the point at which our opinions diverge.
Lastly, I never said nor implied anything about GUI's in any of my posts. I really don't know why you felt it necessary to explain the difference between a GUI and an API to me.
Regards
SL