OK, I cloned this and ran it locally with various things commented out to try to understand it more.  I can see that it has to do with `:inspect` being a core method available on all objects.  I don't yet get why being a core method causes so many other specs to blow up when the double is reset (w/o your fix).  Do you understand why, @xaviershay?  Can you explain?

Anyhow, as for what to do, how about this:

* Let's go with a simple fix like you have here for now.  However, I dislike setting `@method_is_proxied` to false because the method _is_ proxied so setting it to false is a lie.  Really, we just need to short-circuit `restore_original_method`, and `!@method_is_proxied` is the current condition under which it short-circuits.  What do you think about defining a new `@needs_restoration = false` variable that `restore_original_method` would check instead of (mis)using `@method_is_proxied`?
* In #399 we'd like to use the new simple stub stuff, but I guess a simple stub on a partial mock is a "slightly less simple stub" since it needs to be reset properly.  I think that should be taken care of as part of that ticket since it's not needed with what we currently have.  Here's an idea for how to do that: In `TestDouble#__build_mock_proxy` it will instantiate a subclass of `Proxy` that overrides `add_simple_stub` to pass a `support_reset: false` flag to `add_simple_stub`.  For other proxies (e.g. for a partial mock) it'll pass true for this flag, and based on the flag it'll either do `configure_method` or `define_proxy_method; @needs_restoration = false`.  I think that'll work.
* If we're going to leave stubbed methods around on test doubles like this, we'll definitely need to implement #352 before 3.0 is released.  But that can be a separate thing.

How does that sound?