Technically, the list of treatments is a bit longer (event if we consider only RFCs) - there's ICMP type 3, code 2 (protocol unreachable). There's ICMP type 3, code 4 (unreachable, fragmentation needed) when doing MTU path discovery. There's ICMP redirect (a bit esoteric, eh?).
Keep in mind that these days you'll be dealing with multi-layer firewalls/NGN firewalls/UTMs or whatever they're called today - their packet handling is advanced a little from the days of the days of the stateful firewall.
For example: consider the case of an anti-spam or e-mail firewall. Some of them behave more like a transparent proxy rather than a firewall. If you'd like to send an e-mail message via SMTP using your e-mail server, but a transparent firewall sits on the network and intercepts all e-mail messages. Before forwarding even a single packet out to your actual SMTP server, it would transparently accept the connection on behalf of your e-mail server, receive your e-mail in full, scan it, and if all is OK only then it will send it across. So you may think that the e-mail has been sent, but it could very well be that the anti-spam firewall has never relayed it to your intended destination.
IPS systems would break communication "mid-flight", in the moment that a violation is detected (based either on behavior or signatures). They may send a FIN, RST or may send nothing - just drop the packets.
In the modern sense of network security ... it's a bit more complicated than the 4 question's points. I would agree that in terms of stateful-only handling these are some of the main ways to do things.