I'd considered that, but I think it could wind up being gross.
```rust
struct Foo;
trait Bar {
    fn a_normal_method(x: Self) {}
    fn a_static_method(x: Foo) {}
}
impl Bar for Foo {
    fn a_normal_method(x: Foo) {}
    fn a_static_method(x: Foo) {}
}
```
Not only does it necessarily restrict the possible types that can appear as the first parameter to static methods, but it also means that you may need to consult the trait definition itself to determine whether a method is static. Even in the common case I think it's simply harder to scan for a type containing `Self` than just having the `self` keyword.