when you start developing in Liferay you notice that there are many modules and libraries in its core, but there are not accessible from everywhere.
I recently found a problem developing an improvement for the workflow system (see http://issues.liferay.com/browse/LPS-8821), where I needed to use a class that I couldn't access... and I realized that I needed to know which concrete classes were reachable from where I was.
I have done a little research and I've written a wiki article explaining this, and I have created a diagram to make it easier to understand:
I hope it'll be useful for you, developers!
[IMPORTANT UPDATE: This has recently changed for the current Liferay version - 6.0.2. portal-service and portal-kernel have been merged, so that it's much easier now to develop. See http://issues.liferay.com/browse/LPS-9370 for further information]