Здравствуйте, Аноним, Вы писали:
Это особенности языка. например из такого интерфейса
public interface Locker {
void Lock();
void Unlock();
}
совершенно не очевидно можно ли lock-ать вложено или нет.
в таких случаях можно использовать комментарии

Если мало комментарием то кидай исключения и используй тесты.