Having a firewall between subnet a and b is pretty nice to keep clutter down.
Having a separate subnet doesn't provide any security in itself, you can easily change subnet just by changing your IP. The key here however is what you just added this time: a firewall between the subnets. Only then, are you actually securing things properly. You aren't just subnetting then - you are completely segmenting your network.
I never understood the allure of vlan. Maybe it's better in a virtual environment?
It's usually a matter of manageability. VLANs can also be easily assigned by ports or by device. And, VLANs can be mixed. Picture the following simplistic scenario:
- Printer is on VLAN 1
- Accountant is on VLAN 2
- Employee is on VLAN 3
With vlans, you can easily allow both the accountant and the employee to access the same printer, but they still will be unable to access one another's computers.
With subnetting, this is more complicated to implement. You'd have to configure this both at the routing level as well as the firewall/ACL level.