Relays should store HS descriptor without the complicated "am I the right one" logic
Right now relays try to guess if they have the HSDir flag, and try to guess if they are the right HSDir for the descriptor to be uploaded, and they refuse the descriptor if they think they weren't supposed to receive it.
This behavior is ripe for consistency bugs, since maybe clients correctly have a different view of the network than the hsdir does, so it refuses a descriptor when it isn't supposed to refuse it.
It also generally adds complexity to hsdir behavior, which doesn't need to be there.
Now, there is one argument for refusing hidserv descriptors when you don't think you'll be asked for them by clients -- it makes it a little bit harder to use relays to store arbitrary data blobs (since you need to arrange for the data blobs to have content such that they are supposed to go to that hsdir for that day). But I don't think this barrier is any real barrier to somebody trying to stuff a relay with descriptors. I think defending against that DoS or misuse attack is worth exploring, but I don't think the current behavior represents a good tradeoff.