Fluent Interfaces seem to be a good way to improve software design...
I agree with you but I need to make a comment on that. I don't think it's a direct consequence of using fluent interfaces, that is, that by implementing fluent interfaces your software component will be automatically well designed. For example, you give two approaches to adapt an existing interface to a fluent style. This adaptation makes no effort in improving the design of the underlying component, off course.
This relates to the necessity, or advantage, of adapting an existing interface to a fluent style. I believe that the API that a component offers is related to the way it was thought and, although creating a fluent interface may help you use the component, it does not change it's inner workings, that is it's design.
In conclusion, when you check a component that was built with fluent interfaces in mind you can see traces of that line of thought in every part of the component. IMO, that happens because fluent interfaces try to solve some problems like expressiveness, for example, that is not limited to the way you can use an interface.
You gave JMock as an example. Check Wicket source code as another example.