First about getting information about the packages.
You can search the package name on the site launchpad.net to search for the functionality of some package is you are interested.
For your reference, the following link is for the package you have mentioned:
libpoe_perl on launchpad
Similarly all packages have such details.
Second, for the question of suggestion, recommendation. This comes from the origins of Ubuntu i.e. Debian. The Debian FAQ (Debian FAQ on dependencies, etc...) gives details as following. (probably these principles come as such in Ubuntu.)
The Debian package system has a range of package "dependencies" which
are designed to indicate (in a single flag) the level at which Program
A can operate independently of the existence of Program B on a given
Package A depends on Package B if B absolutely must be installed in
order to run A. In some cases, A depends not only on B, but on a
version of B. In this case, the version dependency is usually a lower
limit, in the sense that A depends on any version of B more recent
than some specified version.
Package A recommends Package B, if the package maintainer judges that
most users would not want A without also having the functionality
provided by B.
Package A suggests Package B if B contains files that are related to
(and usually enhance) the functionality of A.
Package A conflicts with Package B when A will not operate if B is
installed on the system. Most often, conflicts are cases where A
contains files which are an improvement over those in B. "Conflicts"
are often combined with "replaces".
Package A replaces Package B when files installed by B are removed and
(in some cases) over-written by files in A.
Package A breaks Package B when both packages cannot be simultaneously
configured in a system. The package management system will refuse to
install one if the other one is already installed and configured in
Package A provides Package B when all of the files and functionality
of B are incorporated into A. This mechanism provides a way for users
with constrained disk space to get only that part of package A which
they really need.
Usually for suggested packages, the package developer/maintainer judges (probably based on statistics of usage and added features ) that most users would not want some package A without also having the functionality provided by some package B. In such cases suggested packages show up.