Making the common case easy and the unlikely case possible means that your interfaces should have a simple learning curve. The things that most programmers will want to do should be accessible. However, the interfaces should allow for more advanced and less likely usage, and it's acceptable to trade off complexity of the rare case for simplicity of the common case.