Internal "get/set" function of property?
It's named "testprop" not "test_float"

When a property defined via

bpy.types.Scene.test_float = bpy.props.FloatProperty(...)


is assigned a value scene.test_float = value  it is stored. "behind the scenes" as a custom property scene["test_float"]  ("second time above")

In the get / set example ("first time above") it is instead stored in a custom property named "testprop".   

Instead, had  the custom property been named "test_float" in the getter and setter, it would emulate the behaviour of the float property without a getter and setter, and be reflected in the value and existence of scene["test_float"] when set.  

Perhaps this needs to be an edit in docs re what RNA would do internally.

Note if the getter is defined thus

def get_float(self):
    return self.get("test_float", 0.0)

def set_float(self, value):
    self["test_float"] = value

bpy.types.Scene.test_float = bpy.props.FloatProperty(get=get_float,set=set_float)


it will return a default value, in this case 0.0 even if the property has not been set.