Since SELECT statements take a shared lock in contrast X and U it seems to me that using WITH(TABLOCK) in datawarehouse style queries used for reporting is the correct thing to do in order to avoid lock management and lock escalation.
I am talking about cases where data is not live production data and concurrency is not a problem. E.g. I don't care about blocking writers by taking a shared table lock. Of course I do not want to block readers, but S locks does not block other readers.
So I guess I can formulate my question as: In a data warehouse environment should all queries not be hinted with WITH (TABLOCK)? And theoretically this should improve performance. If not, why?