Using decorators for type signatures for callable arguments has an important benefit: because of the extra typing involved, and being a separate line from the 'def' statement line, the 'syntax' alone would suggest to Python 'newbies' to only use them if really needed.
I like everything about optional argument type signatures for callables, except the idea of reading the code from Java programmers beginning to use Python. They would use it on every darn thing under the sun.
As a separate line, at least it is trivial to 're-factor' the code to remove unnecessary type signatures: just delete the line.
Kudos on using "restructured text" as the markup mechanism! Great stuff!