Generic virtual methods on IL2CPP: how it works?

Documentation Scripting restrictions contains restrictions of generic virtual methods on IL2CPP in section “Generic virtual methods”. However, the code example given in this section, that should not work on IL2CPP, works fine on Unity 2019.3.0f6 Windows IL2CPP build. I also discovered that our dev team use the generic virtual methods in production without any problems.

Please, describe the actual restrictions of the generic virtual methods.

The restrictions for generic virtual methods occur when the generic arguments are value types (e.g int,double, etc.). Any generic virtual methods with reference type generic arguments will work fine.