You would only put it in the all directory if you are running the all instance of JBoss. When you execute the JBoss run script without any arguments, it starts the default instance of JBoss. So if you are running that, you would put your shared files in server/default/lib of your JBoss distribution.
Yes, it is valid to put your shared libraries in these directories. However, some people may suggest that it is better to package them in a SAR and place them in the deploy directory.
Ultimately, it is up to you and you need to weigh the management costs - particularly on the cost of the installation phase versus the cost of maintenance down the track.
We find it no issue in production, but sometimes it can be frustrating during development if you have to stop and restart JBoss when these libraries change. In our case, we manage this by ensuring we have good JUnit tests in place for the shared libraries and the libraries pass before we are ready to commit them to the test environment.