Another difference is that the hardware switching is pretty vanilla on most platforms, regarding the features available to you.
Other than vlan tagging and port mirroring (e.g. for wireshark captures), most platforms can't do any other typical switch features such as (R)STP, PAGP, etc.
Bridging allows you to throw the full feature set of ROS at it - you can enable the IP Firewalls feature on the bridge and use the IP-layer filtering/mangling rules.
Bridge filters also have their own capabilities at layer 2 (MAC address NAT, blocking/allowing certain types of packets, etc)
Basically, I tend to use HW switching for multiple ethernet interfaces all being grouped together, and use bridging if multiple interface types (tunnels, wlans, etc) need to be on the same broadcast domain. One thing I do that's not the optimal solution is that I tend to use the bridging / vlan sub-interfaces even on configurations where the hw-switching's vlan support would work. Something about it is just unintuitive to me and I never bothered to learn it well enough to hang my hat on it. (so to speak)
When given a spoon,
you should not cling to your fork.
The soup will get cold.