I think option 3, none of the above. In typical RepRap usage, G28 means move to the home switches and then set coordinate reference to the "home position". Home position is typically (0,0,0), but may be some other value defined in the firmware config.
RepRap behaviour is somewhat different to "standard" Gcode behaviour, [
reprap.org] is a good guide, but not comprehensive. The definitive interpretation requires looking at the firmware.
According to the Gcode standard, G28 should move via the point specified, but I think all Reprap firmwares ignore that, and home according to axis letters supplied, or all axes if none supplied.