XPM does read from both databases. We can deduce this because the Staging website has 2 modes:
- XPM disabled - uses regular DB
- XPM enabled - uses Session Preview DB
So it is not just a "cargo cult thing."
We can also see from the debug logs that XPM does some interesting triaging between the regular Broker and the Session Preview Broker:
2014-12-11 16:46:24,070 DEBUG ReadMethodHandler - Invoking read method: getPageURL on DAO: com.tridion.storage.persistence.JPAItemDAO@569bfd69
2014-12-11 16:46:24,070 DEBUG AbstractMethodHandler - Original publication ID for write method parameter [non_entity] is 10.
2014-12-11 16:46:24,070 DEBUG AbstractMethodHandler - Session-publication ID for write method parameter [non_entity] is 8.
2014-12-11 16:46:24,071 DEBUG ReadMethodHandler - Session DAO did not return a result, invoking original DAO method: getPageURL.
So it appears that when XPM is turned on on a given page, it stores and loads the items that are being session-previewed from the Session Preview DB and the items that don't need to be re-rendered come from the regular Broker and it merges the results from the two DBs.