Hi @whale
1. Both options are possible, it depends on your needs.
Generaly, it's usually all about read partitions. Devices S32K11x, S32K142 and S32K144 have only one read partition on program flash. So, the code must run from RAM or from data flash when programming the program flash. This is the main limitation. Devices S32K146 and S32K148 has more read partitions (2 and 3), so the bootloader can run from first partition while programming second or third partitionn and there won't be troubles with read-while-write errors.
2. Yes, 8KB data flash can be used for any purpose. I recommend to check section "36.5.9.4 Allowed simultaneous flash operations" in the S32K1 reference manual.
3. As mentioned above, the only limitation is that you can't access program flash while it is being programmed or erased.
4. If it is not acceptable for you, an option is to select S32K146 which has two 512KB read partitions in program flash.
Regards,
Lukas