What is the argument against declaring protected-access members on interfaces? This, for example, is invalid:
public interface IOrange { public OrangePee
Because it makes no sense. An interface is a publicly exposed contract. I am an IThing, therefore I will perform IThing methods if asked. You can't ask an IThing to confirm it performs methods it can't tell you about.