Why do I need to read frame_duration twice after a reload?

Kindof a funny bug I came across today, thinking it was something complicated and asyncronous.

bpy.data.images['animation-to-process'].reload()
print(bpy.data.images['animation-to-process'].frame_duration)
print(bpy.data.images['animation-to-process'].frame_duration)

The first print will always print 1, but the second one will print 4 (correct frame count)
Any ideas why I have to read frame_duration twice?