Very likely the .clone() wastes memory unless you have inplace operations immediately following the capture.
While I have used similar hacks for debugging, I must admit that I do believe that just spelling out the forward is probably just as easy and more explicit (as in the Zen of Python).
Also, the capture_layer would hang on to storage even after the other bits go out of scope. That could be tricky, too.
It probably is possible to do this if you know you’ve got a lid on several passes through the layer interacting.
Is it clever? Likely.
But is it good style? I’d say no.
Best regards
Thomas