I think respond_to_missing? has a second argument for the same reason as respond_to? . In both cases, it allows the code to ask the object what methods it responds to in such a way that the confidentiality of the method is respected. If used correctly, it can help you encapsulate your objects better.
You indicated a missing feature in method_missing , namely that it should have an argument indicating whether the method was called in a public or private context. Maybe method_missing will have this function someday. Until then, all the functionality of an object that is implemented through method_missing will be effectively public, but can you stop people from using it in their documentation and respond_to_missing? .
source share