I was hesitant to memoize anything here because of exactly the case you mentioned: methods can come and go at runtime. If it is a performance bottleneck, I'm definitely willing to reconsider though.

I'll make the change for `when_defined` for sure. Good catch.