Traditional clustering with SQL Server is a huge pain in the ass. When it works (most of the time) it works well but failures can get hairy quick. There's tradeoffs but if you can make it work AlwaysOn is so much easier to deal with from an ops perspective.
Depends on the database engine used. For example...
https://msdn.microsoft.com/en-gb/library/ms151799.aspx
>"If yes, does failover work flawlessly?"
Again, depends on the database engine used. To use SQL Server as an example again...
https://technet.microsoft.com/en-us/library/ms189590(v=sql.1...