the main difference between these two options is that if a XPage is loaded and a control has loaded property set to false, the control is not created in the JSF tree. If rendered is set to false, the control is not visible in the tree (but will be created).
For example you can access a not rendered control during during a refresh of the XPage and set rendered to true. In contrast a not loaded control is not available and cannot be accessed programmatically.
This also means that all code in a not rendered control will be internally executed: If you define a datasource in a custom control and set rendered to false, the datasource will still get computed (this can throw up interesting effects...).
Hope this helps