Buttler has indeed shown that he has the ability to be a good test batsman. He was put in the team to get quick runs down the order, but has shown that he can bat properly in a test match situation. His test match average is about 31 (actually about the same as Stoneman and Malan) - is that OK for a number 7? I suspect sometimes he may have been dismissed trying to push things along?
As for Root - I don't think giving him the captaincy was the right thing to do. To young, too new to test cricket - and I think that has shown this match. Not only that, but I think it has had an effect on his batting. Batsmen are normally pretty selfish creatures (c.f. Mr G Boycott!), but I think making him captain has added pressure he didn't need. Whether it would be a good idea to 'demote' him now though is another matter, but the record under him is poor.