One definite possibility for grabbing a couple of disk sectors would be to simply resize the swap partition to be a block smaller. We could then do direct I/O to /dev/hda to read/write the freed sectors; they don't need to be in the partition table (but they could be..).
I think I mentioned this in another thread, /dev/hda3 (32MB) is an unused partition by default. Some people create a /usr filesystem as I did, but I would be willing to give that up if it could be used for user settings. Instead of resizing the swap partition (which will get erased by an upgrade because the partition table gets rewritten) shouldn't it just write to that unused partition? Just a thought. I'm not well versed enough in low-level disk IO to figure out this stuff but I do know that partition was basically meant for user apps.