NODATA isn't really a standin for NULL...it's a standin for a GIS concept of NoData, where there's the value that is the lack of any value. In other systems, the NoData value is defined in metadata, for instance a lot of Integer based rasters have -9999 as the NoData value. We have constants because checking if a value is NoData against something that is variable slows things down tremendously. So it's more that, if we could have had 'NULL' primitive values, then NULL would be a standin for the NoData concept.