“for + 时间段”经常用于完成时。同时,“for + 时间段”也可用于一般过去时。例如:I 【stayed】 in Chengdu 【for only one night】 in 2008. 所以,你的句子He worked for 3 years when he was young. 就正确了。至于had worked 是“过去完成时”,表示“过去之过去”。本题没有这个意思。本题只表示“他年轻的时候”这个过去时间里工作过三年。不是“过去之过去”。祝你进步!
这里的for所引出的三年时间,只是他年轻时期的一部分。这里的when引出的从句,表示的不是另一个时段,需要for时间短语截止的时间。在这一句里如果用过去完成时的话,就是指他到某一时间截止,已经工作了三年。如:He had worked for three years by the time he reached 18 years of age.