How could foreign keys ever be a "hassle"?
They're also a performance impact on large tables since inserts/deletes must make multiple trips to the tables/indexes. That's a growing operational hassle as tables grow larger.
This isn't sharding. This is vertical partitioning. Sharding is a type of horizontal partitioning.
Reference: https://en.m.wikipedia.org/wiki/Shard_(database_architecture...