Miners not to do Spread failed hashes to the network. They do not do anything with them, they simply ignore them and try again. Nobody else sees them.
The way we know that the hash rate of the network is not observing all the hashes that were made. Rather, when we see a successful hash, the difficulty of the network allows us to infer the number of non-successful hashes that, on average, must have been made to obtain it.
For example, the difficulty of the network is currently 6.07e12. This means, approximately, that a successful hash is required to start with approximately 74 zero bits, so the probability that a given hash is successful is approximately 2.6e22. Therefore, each time a single successful hash is transmitted to the network, we infer that around 2.6e22 hashes must have been made throughout the network. Since the success is random, the actual number of hashes executed from the previous successful hash may have been significantly more or less. But when we average many blocks, we can arrive at a reasonable estimate of the overall rate at which the network is doing hashes, even if we only see the successful ones.
Similarly, adjustments to the difficulty of the network are not directly based on the overall hash rate. Rather, they are simply based on the speed at which successful Hashes have been observed; Specifically, how long has the last 2016 taken. successful hashes to appear. From the previous discussion, this is correlated to the global hash rate, but the global hash rate is not really used in the calculation of difficulty adjustment.
In her example, Alice's decision to transmit failed hashes or play no role in the Bitcoin protocol. If it transmits a failed hash (that is, a block with an incorrect work test), it will simply be ignored. In fact, it is likely that other nodes in the peer-to-peer Bitcoin network will be disconnected from it (the so-called "prohibition"), because it is saturating the network with useless garbage.