Quick question about DamageReceiver script from FPS tutorial

I noticed in the DamageReceiver script from the FPS tutorial that the explosion variable it exposes to the editor is declared as a transform (where you're supposed to drag your explosion prefab that gets instantiated when the barrel detonates).

My question is, in the Rocket script, pretty much the same thing is done (an explosion is instantiated at the point of impact of the rocket), but the explosion variable that is exposed is declared as a GameObject.

Why the difference?

It's usually a matter of convenience, depending on which you're going to be referring to more often. e.g.,

var someObject : GameObject;

function Start () {
   someObject.active = false;
   someObject.tag = "My Tag";
   someObject.transform.position = Vector3.zero; // Can still refer to the transform component


var someObject : Transform;

function Start () {
   someObject.position = Vector3.zero;
   someObject.eulerAngles = Vector3.up;
   someObject.gameObject.active = false; // Can still refer to the gameObject

To some extent they're interchangeable, aside from how much extra typing you have to do to refer to the component you want, although referring to the Transform directly (someObject.position, where someObject is a Transform) is faster than getting the component (someObject.transform.position, where someObject is a GameObject), so ideally this should be used if the Transform component is being referenced a lot. It may be better in some cases to have multiple variables referring to different components in the same object.