this is mandatory unless you have battery backed cache to recover from failed writes. period, end of statement. if you don't do this you _will_ loose data when you loose power.
I have also run into 'interesting' things with LVM, and so I also avoid it. I see it as a solution in search of a problem for just about all users (just about all users would be just as happy, and have things work faster with less code involved, if they just used a single partition covering their entire drive.)
I suspect that some of the problem here is that ordering of things gets lost in the LVM layer, but that's just a guess.
this is not needed if the application is making proper use of fsync. if the application is not making proper use of fsync it's still not enough to make the data safe.
by the way, ext3 does do checksums on journal entries. the details of this were posted as part of the thread on linux-kernel.