The standard IOS API ("LocationManager") does not provide the developer direct access to the raw data from the GPS chip. Rather it returns location information based on GPS, Cell triangulation, WiFi and (possibly) other sensors (like the accelerometer).
The LocationManager can also return the device's "speed", which "Represents the speed at which the device is moving in meters per second". (emphasis mine) While I'm not certain of the underlying details, it's quite conceivable that an instantaneous speed reading of the device could differ significantly from the top speed as measured by subsequent data points on a GPS plot. Because LocationManager is using multiple sensors it may use (but not sure) the device's accelerometer as part of the "speed" reading. In which case you would expect fairly wild swings from a device in a sleeve pocket in a skier's jacket (as opposed to a device mounted in a moving car).
So if the app takes advantage of this reading in the core location services of IOS (and does not compute it based on subsequent data points) I absolutely would not rely on the max speed reading from the app itself. The data is very likely precise ... but not likely accurate :)
Bottom line ... unless you know more about how the app is coded, I wouldn't rely on some of the readings .. particularly max speed.
To be fair, I've tested the iPhone against a dedicated Garmin GPS for hiking/trail running and found the iPhone's plots to match up very well against the Garmin. There are some issues with dropped track points when in dense woods or partially obstructed sky views as the Garmin's receiver is much more sensitive than the iPhone's, but overall a GPS app on the iPhone is pretty accurate in terms of track, distance and elevation over a longer course.