I don't generally post in PR. I'm not a particularly active user, I don't really play Pokémon on more than a casual "occasional laddering" level right now, and the circumstances of my PR access are the kind of edge-case that could give one reason to side-eye my still having it. But, well: what I do know is designing and programming video games. And in that light, I think I have something relevant to say here:
The fact that Battle Bond/Battle Bond/Battle Bond Greninja is a separate form to Torrent/Torrent/Protean Greninja is pure trivia. It is an implementation detail, a way of accomplishing the goal of giving Greninja a second "hidden ability" without reworking the entire Pokémon data structure to accommodate the single case where that happens.
It does not matter to the game-as-played.
T/T/P Greninja and BB/BB/BB Greninja are presented to players as the same form of the same Pokémon. They have the same stats, appearance, name, etc. They're identical in every respect but their ability sets. And there's no reason to assume that these will remain separate forms, either!
I'm going to say, right now: if I were tasked with re-implementing the Pokémon systems, from a completely fresh codebase, there's no way I'd keep both of these Greninja forms in the datasets. The existence of a case where you wanted a second HA slot and implemented a shitty hack to get around not having it suggests that this is a problem you'll likely have again in the future. You'd just have T/T/P/BB Greninja, because that'd be the cleanest, most generic solution that allowed me to avoid repeating something like the two Greninja forms we have now in the future.
Without datamining, you would never be able to experimentally determine which of these solutions was in fact in use.
Which gets back to the point of "this is trivia." There's never a point during gameplay when the decisions you have to make, or the options available to you, or anything else at all for that matter, is informed by the difference between "Greninja has Torrent/Torrent/Protean/Battle Bond" and "Greninja has Torrent/Torrent/Protean, unless it's the special Greninja that's identical to not-special Greninja except for having Battle Bond/Battle Bond/Battle Bond."
Smogon deals in rulesets, right? That means you're engaging with mechanics, not implementations. And while you might chase accuracy in mechanically relevant implementation quirks, this is fundamentally because these are things that, as players of the game, you have to interact with. Gen I criticals are broken. They don't work as intended at all. But they're part of the game as played, and the broken implementation definitely plays differently compared to a fixed implementation of gen I criticals! That's fine - but it's fine because that's a mechanic. It's a broken mechanic that doesn't work the way it's supposed to, but it's a mechanic that works in a particular, competitively meaningful way. That's an interaction between players and systems that needs to be modeled in simulators, accounted for in rulesets, etc. Even if it's not what Game Freak was trying to do there!
The difference between "there are two identical Greninja forms with different ability sets" and "all of Greninja's ability slots actually fit in one ability set" is not competitively meaningful, though! You can't do anything with it, and you could make a system that is the same in every way that matters to Smogon where the underlying assumption that Greninja has two distinct forms doesn't hold.
That being the case: I would make the argument that, in every way that matters to Smogon, both Greninja forms are the same Pokémon. The fact that there are two of them is purely down to a technicality - Game Freak didn't want to revamp their Pokémon data format on account of the one, singular mon that wants four ability slots.
The fact that Battle Bond/Battle Bond/Battle Bond Greninja is a separate form to Torrent/Torrent/Protean Greninja is pure trivia. It is an implementation detail, a way of accomplishing the goal of giving Greninja a second "hidden ability" without reworking the entire Pokémon data structure to accommodate the single case where that happens.
It does not matter to the game-as-played.
T/T/P Greninja and BB/BB/BB Greninja are presented to players as the same form of the same Pokémon. They have the same stats, appearance, name, etc. They're identical in every respect but their ability sets. And there's no reason to assume that these will remain separate forms, either!
I'm going to say, right now: if I were tasked with re-implementing the Pokémon systems, from a completely fresh codebase, there's no way I'd keep both of these Greninja forms in the datasets. The existence of a case where you wanted a second HA slot and implemented a shitty hack to get around not having it suggests that this is a problem you'll likely have again in the future. You'd just have T/T/P/BB Greninja, because that'd be the cleanest, most generic solution that allowed me to avoid repeating something like the two Greninja forms we have now in the future.
Without datamining, you would never be able to experimentally determine which of these solutions was in fact in use.
Which gets back to the point of "this is trivia." There's never a point during gameplay when the decisions you have to make, or the options available to you, or anything else at all for that matter, is informed by the difference between "Greninja has Torrent/Torrent/Protean/Battle Bond" and "Greninja has Torrent/Torrent/Protean, unless it's the special Greninja that's identical to not-special Greninja except for having Battle Bond/Battle Bond/Battle Bond."
Smogon deals in rulesets, right? That means you're engaging with mechanics, not implementations. And while you might chase accuracy in mechanically relevant implementation quirks, this is fundamentally because these are things that, as players of the game, you have to interact with. Gen I criticals are broken. They don't work as intended at all. But they're part of the game as played, and the broken implementation definitely plays differently compared to a fixed implementation of gen I criticals! That's fine - but it's fine because that's a mechanic. It's a broken mechanic that doesn't work the way it's supposed to, but it's a mechanic that works in a particular, competitively meaningful way. That's an interaction between players and systems that needs to be modeled in simulators, accounted for in rulesets, etc. Even if it's not what Game Freak was trying to do there!
The difference between "there are two identical Greninja forms with different ability sets" and "all of Greninja's ability slots actually fit in one ability set" is not competitively meaningful, though! You can't do anything with it, and you could make a system that is the same in every way that matters to Smogon where the underlying assumption that Greninja has two distinct forms doesn't hold.
That being the case: I would make the argument that, in every way that matters to Smogon, both Greninja forms are the same Pokémon. The fact that there are two of them is purely down to a technicality - Game Freak didn't want to revamp their Pokémon data format on account of the one, singular mon that wants four ability slots.