The simple answer to (1) is: resolvconf sets itself up as the intermediary
between programs that supply this information (such as ifup and
ifdown, DHCP clients, the PPP daemon and local name servers) and
programs that use this information (such as DNS caches and resolver
libraries).
That's from the package description. On desktops, it works in conjunction with NetworkManager to handle making and dropping connections smoothly.
So resolvconf, along with dnsmasq, are used in 12.04 to make the DNS info handling more reliable on the desktop version. So in some situations, it does make things better, but the whole situation lacks the documentation in the right place, esp. in the server world.
Despite loads of Googling, I haven't been able to ascertain what is recommended on a server installation.
As far as (2) goes, you're having the opposite problem from me. Dnsmasq works well with resolvconf on my machine and updates the /etc/resolv.conf file to contain 127.0.0.1 but has other problems because dnsmasq doesn't get the ISP name servers from dhclient on eth0 (this is a gateway) nor does it get the name servers I manually entered in the eth0 stanza in /etc/network/interfaces.
Why do you use dnsmasq? Are you also running a gateway with 2 nics? Or is it just a plain desktop? If so, resolvconf co-ordinates with network-manager