I looked a bit into your idea and tried to estimate if is is possible in a reasonable time. While at this task I already submitted a patch to the check_first_login script (https://github.com/igorpecovnik/lib/pull/366).
My new task proposal would be this:
Write a script which asks the user at the first login what he wants to do with the unpartitioned space on the SD-Card.
Options:
a) Use whole SD-Card for root (as it currently happens automatically)
Partition disk and use space for a configurable mountpoint with any supported filesystem (perhaps with some options to choose from, e.g. /home, /var/www, ...)
c) Leave space unpartitioned (options: ask again at next boot; never ask again)
When selecting option fstab will be updated automatically. The amount reserved for root is user selectable (with reasonable limits).
The current mechanism to resize the root fs at first boot would be disabled. Doing this at first login is as good as during first boot.
Does this proposal sound good?