I was asked to assist in changing the tempdb configuration on a SQL Server to use multiple files and to shrink the size down from a single file of 90GB to eight files, 5GB each for a total size of 40GB.
Except tempdb wouldn't shrink!
Even though it was almost empty, it just wouldn't shrink.
Luckily I remembered to do a DBCC FREEPROCCACHE before trying to shrink again and then the shrink worked.
SQL Server internally uses tempdb for lot of things - one is obviously tied to query plans.
Many years ago I suggested to Microsoft SQL Server team that there should be two tempdb databases - one for SQL Server internal operations and the other for users.