If I normalise a lidar dataset I am (according to my thinking) simply subtracting the first return heights from the ground heights. Thus the resulting dataset will only contains the height above ground and a mountainous region would then appear flat when visualised as a cross section profile. Is this correct?
This is exactly what a white top-hat transform does. This is a simple mathematical morphology operator that involves differencing the original point elevations from the elevations derived from an erosion operation (minimum filter) on the point cloud, followed by a dilation operation (maximum filter). The following is an example of a point cloud for a mountainous area and the subsequent white top-hat transform on the same data:
Notice that the resulting surface is essentially flat, with elevations associated with the height of points above their respective local minima (i.e. the ground surface). This is also apparent in any profile extracted from their respective DEMs:
The white top-hat transform can be performed on a LAS point cloud using the LidarTophatTransform tool within the open-source WhiteboxTools geospatial analysis platform. I believe that this is how the lasheight tool of LASTools also works.