In fact with my brief tussle with JACK a year or two back, it seemed to me that the JACK itself might not actually mandate any particular sampling format. It's just that everybody talks float by default, because it is an excellent choice for professional audio work. (If there are any intents to support any other format, they aren't readily apparent.)
The buffers passed between applications were still void * pointers and the only clue for their contents was a simple string describing what kind of format you had requested from JACK, a #define which expanded to a string such as "32-bit pcm floating point audio"...