I don't know where you read that an individual table should not exceed 1 GB or 20 million rows. Those are definitely not size limits for MySQL tables.
See my answer in Maximum number of records in a MySQL database table
You will fill up your storage before you reach the maximum table size MySQL supports. In other words, there is no storage that exists today that is larger than the limit of a MySQL InnoDB table.
That said, there are recommended size limits. For example, if you let a table grow too large (e.g. 1TB), it will take days to do a schema change or an optimize table.
At my work, we recommend to the developers that they should keep tables under 500GB, and we warn them if it goes over 1TB. Because the larger the table gets, the harder it is to complete certain operations tasks (defragmentation, backups, restores, schema changes, etc.).
There's no specific limit or threshold, it's simply that "the bigger it is, the more time it takes."
This is true for anything that runs on a computer — not just MySQL and not just databases.