First of all, don't use "real". It is a platform dependent type.
You MUST use "single" to be sure you have 4 bytes of data, since you have a pointer to 4 bytes.
I imagine what a low level task could need to put a data type in a pointer for another type. Maybe you wanna make binary shift with you floating point number, what is not a ordinary behavior anyway.