All the explanations for for the fire weakness are true.
Skimming this entry I see at least three different reasons. First, physical weakness. Second, his family died in flames causing post traumatic stress. Third, psychic fail safe imposed by the guardians. Look at the guy, he's a walking curse. The physical weakness, indirectly from fire. If Kryptons have a weakness to kryptonite, Daxamites to lead, then it is plausible that John has a weakness to some byproduct of certain burned materials. The reason fire doesn't always effect him physically because the materials that produce the "kryptonite" ash aren't always the ones burned near him. Since nobody has caught on to this, there are times he would normally not be affected but suffers a placebo effect of weakness. He does have PTSD, or had depending on the story, from his wife's death. The guardians did impose a block related to fire in the minds of Martians. Then there are times where the mental block, the PTSD and placebo effect all just overload his mind around "safe" fire, and he just isn't affected by it.