iirc the reasoning why you can't use decorator syntax for functions is that you can already easily wrap them (as opposed to class methods, where the syntax means you kinda just can't)
In my case I ended up making a wrapper that works for both cases: github.com/thegu5/neopr...