"The best" is a term that really annoys me. As the saying goes, Your Mileage May Vary. There is no One Size Fits All and this isn't Highlander, so there can Be More Than One. And I think I just wore out my shift key
JSF plays well with others and I myself have a showcase app that mixes JSF with Spring, where JSF manages the HTML parts and Spring-web manages the XML stuff that some of the AJAX components use.
I'm going to be a "small government" candidate. I'll be the government. Just me. No one else.
Spring Webflow should only be used when you need to make user follow a strict workflow like booking a flight , booking a movie show where user can not jump or navigate randomly.
As for choosing between between JSF and Spring MVC, it really depends on the kind of skill set and experience you have with these technologies.