Interfaces are not intended to dictate how something is implemented. Perhaps this is a conversation for another type of architecture?
I don't understand the struggle with just using a Trait or extending an Abstract class that implements a specific Interface when you need it. That's what they're there for.
I love this idea, but I loathe the syntax. However, I am not clever enough to propose another syntax. My issue with chaining by nesting functions is that it reads backwards, and that's just so visually messy that I end up just setting the variable multiple times for readability alone, which is the desired outcome anyway. It's not like we NEED to be terse in PHP to save a few bytes. Better to have obvious and readable code. So while I'm voting yes for this, it's for concept only, not crazy about the syntax. 🤷♀️
It's not an uncommon syntax. Other languages do this. Could be handy. If you're against it, just write it the long way and/or have your code sniffer reject it. You don't have to use it.