"Since static methods were bound at compile time, why they must also conform to the requirements in the respects of access modifier, return type and throws clause which i thought were a sort of contract between overriding methods and overridden methods. "
Access modifier, return type and throws clause are certainly more than that. To use your contract metaphor, they are a contract with the entire rest of
Java.