Rock resisting rock is based on the same logic you use, but backwards: there are rocks even tougher than metal, and there are rocks that cannot be sharpened/broken by other less tough rocks.
Not all rocks are weak to the expansion of ice inside them. Rocks that do not have porosity are certainly "resistant" to ice, since water can't get inside them in the first place (unlike in ground, which generally is always permeable and softer than rock). The same way around, some rocks are not hard or compact enough to even scratch ice, while others are, so if we went by that Ice and rock should be neutral to each other (which could work as well)
In glaciars, ice forms rock-hard structures that move slowly by gravity. Glaciars remove, scratch and change the appearance of the ground around them as if it was nothing (this is probably why they made ice se against ground I guess), but ground is soft in comparison and it can't even do shit to big masses of ice, unlike rock which can have a chance depending on how hard it is. As for ice resisting water, I just think that it is colder, solid water, that floats above liquid water, and isn't really harmed by water in any way, that's why I think ice should be resistant to it.
I'll give you bug resisting bug however. Doesn't make sense from a biological point of view but I always felt it should, mostly as an added survival factor for terribad typings such as Parasect's and Leavanny's.
Regardless, these type resistances I talk about are mostly thought in a strategical way with the only intention to make ice, rock and bug better defensive typings. If they make sense or not at the end of the day, you simply point at "pokemon logic" and call it a day.
The way Garbodor-Vanilluxe are justified as being worse than Muk-Electrode is random as fuck in my opinion. Saying that garbodor makes far less sense than muk is almost as saying that garchomp is far less of a badass than gyarados, just because. For what we know, Garbodor can perfectly be based in the same principle Muk is, that is, chemicals that mixed together to create a kind of life. I mean why not? how do you know that the same reactions that brought muk to live weren't similar or even the same that made the substances inside garbodor come to life as well? If anything, the only real difference between them is that muk is made of liquified crap, while garbodor is made of solid crap (and has a skin-bag...sorta lol).
I'll give you Vanilluxe however, in that is just an ice cream with a face. BUT, Electrode happens to be a pokéball with a face (and upside down). "Electrode is an energy/electric based being" the same way I could say "Vanilluxe is an ice/snow based being". If anything, as said already, the choice of an ice cream as visual design is a bit weird, but comes down to the same weirdness that makes most people like electrode. I'll agree though, that Cryogonal looks better (than both). A shame that most people don't like it (another injustice) and that it isn't ice/psychic (yet another injustice).