Trading Eggs is locked behind having the National Dex specifically, and the check would prevent all Eggs in general even those containing Kanto mons.
https://github.com/pret/pokefirered/blob/7e3f822652ecce0c99b626d74f455c3b93660377/src/trade.c#L2759
This is kind of relevant now that FRLG 2026 has patched it, and it turns out this was related to fixing an undocumented RS bug all along in terms of why it was introduced.
C:
if (gBattleTypeFlags & BATTLE_TYPE_ROAMER)
{
UpdateRoamerHPStatus(&gEnemyParty[0]);
#if defined(BUGFIX) || REVISION >= 0xA
if ((gBattleOutcome == B_OUTCOME_WON) || gBattleOutcome == B_OUTCOME_CAUGHT || gBattleOutcome == B_OUTCOME_DREW)
#else
if ((gBattleOutcome & B_OUTCOME_WON) || gBattleOutcome == B_OUTCOME_CAUGHT) // Bug: When Roar is used by roamer, gBattleOutcome is B_OUTCOME_PLAYER_TELEPORTED (5).
#endif // & with B_OUTCOME_WON (1) will return TRUE and deactivates the roamer.
In RS they didn't handle the draw outcome to despawn roamers, so if you explode on Latias/Latios and kill them while whiting out, they'll still be roaming at 0HP.
In
GBA FRLG they check for gBattleOutcome & B_OUTCOME_WON (
bitwise AND on 1) instead of == to handle both the WON (1) and DREW (3) cases, but this also leads to returning true on teleport/roars (5) which infamously despawns them.
So in Switch FRLG they just check equality for each win/catch/draw battle outcome individually to despawn the roamer now.