A1: Who parked the car there last night?
B1: It could have been Tom.
上面第一组对话没问题。非常不错理解。
A2: Who parked the car there last night?
B2: It could be Tom.
上面第二组对话B2的回答到底的意思是?
既然你对B1无疑问,我只回答B2.
A2: Who parked the car there last night?
B2: It could be Tom.
B2的回答实质是省略了that/who从句的it 分裂句(强调句型)。等于:
It could be Tom who/that parked the car there last night.
当大家用It was Tom...时,大家强调的是一个事实(说话人自觉得自己知道事实真相)。当大家并不知道事实真相,而是表示理论上存在某种可能性时,大家就能用表示can的过去式could表示过去存在的理论上的可能性。注意could的这种使用方法不是推断。
顺便说一下,B1中的could have been则是could表示推断,对过去的推断要用could have done形式。