Hi Grzegorz,
You might want to look at the v2 work going on, which will implement some of the features you've noted above (include + with_items and runtime evaluated includes, at least at the task level).
Also, another feature we're working on in v2 is the concept of "blocks", which will essentially allow better grouping (and error handling) for tasks. An example of a block is:
begin:
- name: task 1
...
rescue:
- name: rescue task 1 (runs when any task in the main block fails)
...
end:
- name: some cleanup task that is always run
...
Blocks already support tags/when statements, but do not currently support many of the other task-level options like sudo/sudo_user. If we want to, they could be extended to include those as well without too much effort I think, if that's something users are interested in. We're using the ruby-ish syntax here due to internal variable names, but we have talked about switching this back to the more pythonic try/except/finally syntax.
I plan on using my speaking slot for AnsibleFest London next week to run over the new features in V2, so stay tuned for a slide deck to see what else is going on in the new codebase (or even better, buy tickets!).
Sorry this degenerated into a "hey, look at v2!" response, but I really do think it does (or will) fit what you're trying to accomplish here, and we're getting very close to opening up contributions there as it's nearing critical mass on feature support.
Thanks!