Technically, truncate is a fully logged operation. It deallocates pages and those are logged. Every action it performs is logged. The confusion is that record deletions are not logged, but it doesn't perform record deletions. It performs deallocations.