Good question, well done!
as Kingston wrote earlier, per BOL looks like there are a few more restrictions on truncate,
You cannot use TRUNCATE TABLE on tables that:
* Are referenced by a FOREIGN KEY constraint. (You can truncate a table that has a foreign key that references itself.)
* Participate in an indexed view.
* Are published by using transactional replication or merge replication.
For tables with one or more of these characteristics, use the DELETE statement instead.
TRUNCATE TABLE cannot activate a trigger because the operation does not log individual row deletions. For more information, see CREATE TRIGGER (Transact-SQL).
With all these restrictions what kind of application would use truncate table?
Thanks,
Iulian