Simply put, a geotiff is not a tiff. A 32bit float tiff is just float point data. So each pixel has it's amplitude, and the pixels are set in their dimension. A geotiff has a 0-1 range I believe, and then a projection system (and there are many) which define its location, area, amplitude, etc. The image map reader uses a different dll (function) than the geotiff, and thus, can't load any of that data, so it just interprets it as a basic image, or what it can see in that 0-1 range. It also doesn't know correct resolutions/size and thus probably renders smaller (hence the banding when set to a large size).
Also, the heightmap shader has it's own features to interpret heightmap data better, and apply fractalization, which makes it appear "better". Especially useful for low quality DEM/Height maps.