high-availability: LVS vs HAProxy question



Hi, I've been doing some research into how I can setup a high-
availability open-source web cluster and I've come to looking closely
at LVS and HAProxy (I've used Pound till now).

I understand that LVS is level-4 and haproxy is level-7 (app).

To me, this means the following:

LVS pros over haproxy: speed

haproxy pros over LVS: statefull routing (based on IP/URL/etc.)

Given that LVS requires kernel patches, I'm leaning towards haproxy.

What I can't get my head around is the following question:

On a high-level, can haproxy provide everything that LVS aims to do:
giving a client a single-system view of the cluster?

any thoughts much appreciated
cheers
doktora
.