Each project in each event (inc'l snapshots) is a separate SQLite database, consisting of a CurrentVersion.fcpevent file. Within that are eight SQL tables, with several indexes on some tables. Plus each event also has a separate event-wide database. E.g, clips not in a project may contain markers, ratings, keywords, edits, Fx, etc, and this must be stored somewhere.
Each database connection entails certain overhead, yet there is also latency in opening a database. Certain FCP search operations likely require numerous databases be opened, but the overhead in maintaining very many in an opened state may also have a performance cost.
It appears that FCP will try to balance these two conflicting areas by deferring opening projects/snapshots in libraries (or events) with tons of events and projects. When you click on a project it may then try to open those in the background, causing a slowdown. FCP writes a brief status message saying something like "opening projects..." (I can't remember the exact wording, but it lingers for a few seconds). When that happens it may imply FCP has reached a state when opening the previously-deferred databases is now required.
A compound clip uses inheritance whereby changing the compound clip (held by the event database) will propagate to all references in all timelines (held by the timeline databases). That by itself is not bad.
However -- IF you then create many snapshots of projects that contain compound clips, that severs the parent/child relationship of all compound clips referenced by the timeline, and forces FCP to duplicate lots of data (which would normally be in the project database) in the event-level SQL database. That can cause an immense amount of database I/O.
So there is a non-linear antagonistic relationship between compound clips and project snapshots.
Those actions require lots of database I/Os which are small and random, unlike media reads which are large and sequential. Thus it is very important to have the FCP library itself on a fast SSD. That in turn implies it should be a "lean" library where all media is imported with "leave files in place."
However, there are some extreme cases if you have lots of multiply-nested compound clips and lots of project snapshots where some normal operations will be slow. The first step is examining how many project backups, project snapshots, compound clips and multicam clips you have throughout the library.