well, yeah, it *should* store it, but there's always the few special snowflakes that just dont
ps1 was a gigantic mess as far as standards go, so that be that. Point was moreso, that's how it should be and that's where it should be read from.
if it's not there then one could always dig into the executable to find it but yeah, in terms of general identification, the executable name and/or the boot line on system.cfg is the way to go.
as far as using the gameID for identifying a good/bad image for patching, as already stated, revisions of a game might and mostly do reuse the gameID, so identifying a specific rom from the gameID is pointless.
in the case of psp, it could technically work as the param.sfo does list the version number, as well as the required firmware version number, and a whole bunch of other shit that could technically be used to identify a specific build of a game. But then again, just using a checksum does the same thing, no ?