|from the Golden Haggadah, Spain, 1300s|
As a kid I learned that Moshe wasn't allowed to hit the water because it saved him when he was a child and he had to show hakaras hatov (similar answer for why he couldn't hit the sand that saved him by hiding the body of the mitzri he killed). But the water didn't save him, the little basket, the Egyptian lady who yanked him out or even the sister who watched him might have saved him, the water didn't do anything. If someone was in a car accident an survived unharmed they would say the seat belt saved them, not the road. How can we make sense of this ma'amar chazal?
I think that just as you can't ask a kasha on a maaseh, you often can't ask a kasha on a midrash.
On a peshat level, the reason it is Aharon who hits the water and the sand is that Hashem established Aharon as a spokesperson for Moshe, in the 4th perek of Shemot:
and later in perek 7:
Still, it is irregular that sometimes Moshe takes action, and sometimes Aharon takes action, but there are surely peshat resolutions to this issue.
The Midrash is derash and derush. By derush, I mean that it is meant to teach a moral / ethical lesson. On a practical level, on which normal and sane people conduct themselves, people don't need to show gratitude to inanimate objects, which did not mean to assist in any way, and have no senses such that they would be hurt by being hit. And the river was hit anyway, whether by Moshe's direct action or by his command.
But the midrash is highlighting these actions by Aharon as a homiletic way to highlight the important trait of gratitude. And perhaps even gratitude for unintended side effects of other people's actions. Someone did not directly intend to benefit you, but they still effectively helped you out -- you should show, and feel, gratitude. Even if someone benefited you in a limited, transitory way, you should show, and feel, gratitude.
However, in terms of the challenges posed by the question, I think that they are readily surmounted. The sand hid the slain Egyptian. The water hid baby Moshe, such that the Egyptians did not find him. And it kept him their until he was found by the daughter of Pharaoh.
Further, there is a midrash that the astrologers told Pharaoh of one, soon to be born, who would challenge his power, but that that person would die by water. (Think of Moshe hitting the rock and as a result dying in the midbar.) Therefore, Pharaoh commanding casting all infants into the Nile. The midrash continues that as soon as Moshe was cast into the water, the astrologers informed Pharaoh that they had sensed that this usurper had been cast into the Nile. And immediately, Pharaoh rescinded his decree. Thus, one could say that it was the water itself which had saved Moshe.