I looked into my 100D rom again, and behold:
100D:FF6F47F0 BL unk_double_0x61584 ; [R0,R1] = f(R0,R1,R2,R3)
100D:FF6F47F4 STRD R0, [SP]
100D:FF6F47F8 ADR R2, "***** GuiUtilOlcData GUI_GetOlcTvForCode8def UniqueNum(%lf)"
100D:FF6F47FC MOV R1, #6
100D:FF6F4800 MOV R0, #131
100D:FF6F4804 BL DryosDebugMsg
Seems like the double's are 64-bit after all, and the 100D's prinft support floats.
I can't find any explicit use of double in the src dir, but there are cases where doubles should be used implicitly:
src/fps-engio.c: float frame_duration_orig = 1000.0 / default_fps;
I'm not sure if the -ffast-math flag will demote them here or not.
Anyways, floats are preferable unless high-precision is needed, e.g. more than roughly 7 decimal digits.