The CMS portlet has 2 modes because it is a special portlet. Indeed it can be used:
mapped on heirarchical URLs of the portal : /content/a/b will display the file /a/b from the cms
used as a portlet to display and browse content
It is important to understand that it is possible to map only one window of the portal on the friendly CMS urls.
To choose which mode you want the CMS Portlet work in, you use the portlet preference named linkMode. It can take the value of either cms or portlet.
If linkModel is not given a value, the default behavior is portlet link mode.
When the portlet is in cms mode then the links produced are friendly URLs and will target the default cms window
When the portlet is in portlet mode then the links produced will be portlet URLs and will make the CMS portlet work standalone without redirecting the user navigation to the CMS portlet mapped on the heirarchical URLs of the server.