That seems strange because you'd think you may need the guarantee the pointer remains a pointer for an ABI? Or does it only do this in very limited circumstances? Do you know the term I can use to Google more info about this?
It only works if you use link-time optimization or the qsort() definition is otherwise available for the compiler to see.