A GKC placed in a general function like the toolbar allows to affect all pieces and much more dedicated to setup or a global change, update … In a way a general function easy to found and to use …
A GKC placed on a piece is much more used to affect other pieces depending of the current context of that piece …
A piece GKC is able to inherit and reference/use properties defined within the piece itself whereas a toolbar GKC is unable to.
For example a piece has a marker trait with the property “shape”. On some pieces “shape” is defined as “square”, on others it is defined as “circle”
In the piece GKC we can add the property match expression shape = $shape$, which will affect all pieces that match whatever “shape” evaluates out to on the given piece issuing the GKC
Adding shape = $shape$ to the toolbar GKC means absolutely nothing however and will not work (unless shape is a defined GP), a slight but subtle difference