thank you for your good questions.
(1) Multiple rule blocks can lead to a better organization over the goals of the engine. You could experiment with multiple input variables and rules at the same time, and also better organize your engine based on the tasks or any other criterion.
(2) You can use an output variable as an input by just using the rule:
if outputVariable is ... then anotherOutputVariable is .... Check the following examples in the
(3) Hedges modify the propositions. Please check the bibliography and the examples.
(4) Please find the description of all the terms in the documentation available at:
http://fuzzylite.github.io/fuzzylite/index.html . Furthermore, please check QtFuzzyLite to observe all the terms available.