My brother in Christ, this is not a bug but a feature. Try catching a normal Weezing and it will also use explosion.
Let me teach you how it works:
Any wild pokémon will have the last 4 moves it has learned at that level. (Pro tip: look in the pokedex to see at what level the given mon learns its moves)
Meaning - a wild Bulbasaur between level 21 and 32 will have the move Take Down. THEREFORE it should NOT be false swiped as it can kill itself.
Another example - a wild Weezing between level 28 and 43 will have Selfdestruct. It learns Explosion again at level 50 and does not learn another 4 moves after that, so it will always have explosion after that. It is up to you to have this knowledge and be prepared.
So either bring a Pokémon with Damp ability - the function of that is that pokes cant selfdestruct - or simply use a masterball. The masterball would have saved you any trouble in both your unfortunate situations.
Literally nothing about this is broken, needs to be fixed, or is an error. This has nothing to do with forms or shiny Pokémon. Hope this answers your "question".
Consider yourself a more knowledgeable trainer after this.