Yes it is possible to obtain actual distance from the phone surface.
In fact ALL hardware sensors DO provide this information. But unfortunately the sensor API defined in Android defines the proximity to be a boolean i.e NEAR(1) OR FAR(0).
To get a boolean reading from the actual distance, the distance obtained from the proximity sensor hardware is compared with a threshold value. This is often done in the sensor-HAL.
Also some light/proximity sensor-hardware ICs provide a proximity boolean themselves. In this case, the threshold is configurable in the hardware. The hardware compares each sample obtained with the threshold internally and then reports the boolean "proximity".
Irrespective of the kind of sensor hardware in use, Android (upto v4.1 "jelly-bean") does NOT expose the proximity distance parameter as part of its sensor API. One can modify the sensor-HAL or try to interact with the proximity sensor driver directly (usually a sys-fs entry).
More details of Light/Proximity sensor on Android.