Theres several understandings of bottlenecks
One is, as implied, it squeezes performance, so that all compomemts arent getting their full ability because one is "bottlenecking" the rest.
The other one is, a true bottleneck will adversly effect your entire rig in many/all or a given app.
In the end, theres always a "bottleneck" by one of your components, as that particular one will be the impeding component, not allowing for full usage by the others, and is why some say the true deffinition is a dynamic loss of perf, while it is considered more as a limitation in a balanced system as a norm