Q:

How can destination addresses 132.148.77.28 and 132.148.77.28/32 be use different network interfaces for routing?

The output of netstat -rn on my FreeBSD virtual machine shows that:
Internet:
Destination        Gateway            Flags      Netif Expire
default            10.195.51.254      UGS      vtnet0
10.195.48.0/22     link#1             U        vtnet0
10.195.49.46       link#1             UHS         lo0
127.0.0.1          link#2             UH          lo0
132.148.77.28      link#1             UHS         lo0
132.148.77.28/32   link#1             U        vtnet0

Given the CIDR of 32, doesn't 132.148.77.28/32 equal 132.148.77.28?  If so, how do packets to the destination address in question decide whether to use lo0 or vtnet0 since there's two different routes defined for that address?

A:

The H flag indicates a route to a particular host, which will be used in preference to a route to a subnet.
It looks like the main subnet for vtnet0 is 10.195.48.0/22, and 132.148.77.28 is just an alias (hence the /32).
See the manual pages for netstat(1) and route(8).

