You can't effectively do what you're trying to do, because of the way pf works.
NAT happens before filtering, so the 1:1 for port 80 and the port forward for 30123 look identical to the firewall rules, so they are both allowed.
The correct thing to do in this case would be, as johnpoz said, to make the service bind to port 30123 and not rely on a NAT redirect.
Either that, or ditch the 1:1 NAT and just use port forwards.
Actually I take that back - there may be another way:
Add a port forward for 80->80 like you have for 30123->80, but on the 80->80 rule, check "No RDR (NOT)".