First, it will use tmp swap for file larger than 1MB.
Second, we keep the part of a swap file being mapped into process memory space as small as possible to avoid exhausting the address space of a 32bit process.
You should continue to pursue the "internal redirect" route by all means though...