My apologies, you're right. Tested here with -m25 to make it clearer, and a 100MB virtual block device with 50MB then 90MB filled.
# truncate -s 100000000 test.img
# mke2fs -i 262144 -m 25 test.img
# mount -o loop test.img /mnt
# dd if=/dev/urandom bs=1000000 count=50 of=/mnt/test.dat
# df -k /mnt
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/loop8 97572 48908 24252 67% /mnt
# dd if=/dev/urandom bs=1000000 count=40 of=/mnt/test2.dat
# df -k /mnt
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/loop8 97572 88016 0 100% /mnt
# umount /mnt
# rm test.img
The "Available" and "Use%" do take into account the reserved space.
It would have been a bit clearer if you'd use "df -k" instead of "df -h" in your original post, since the "humanized" values have very low resolution - but it still shows roughly 1.0GiB of total free space, compared to 518MiB available space.