viragomann,
Indeed, it depends on what you're comfortable using and your environment. It is the old question of dedicated HW vs virtualizing, just applied to the firewall.
While it is nice to have dedicated routers, it can get expensive to deploy server class HW for them. While using CARP might forgo needing to implement some redundant HW (maybe no HW RAID, no teams), setup and ongoing maintenance might be simpler when virtualizing them.
If you have HA requirements for your other VMs (ie, you likely implement a cluster with a SAN), moving the firewall into the cluster is a way to better allocate your resources. Instead of having to purchase separate and dedicated HW for the firewall that might be underutilized (or become obsolete over time while the rest of your network is being upgraded), you can just virtualize it and use the same HA infrastructure you are using for the rest of your network (with the same procedures for monitoring and maintenance, rather than an exception that might break or require tweaks when there are HW changes).
If using a cluster (specially with a HW SAN), IMO a hypervisor solution is far simpler and as powerful as CARP. For planned failovers, live migration solutions don't miss a beat (CARP might), and in the case of an unexpected failover, the underlying OS logic should be sufficient - and while it might take longer to spin up the replacement VM, it also has to start your other VMs (ie, the cost of a nearly instant firewall failover might be too high considering the rest of the environment is down anyway).