The non-singleton EhCacheRegionFactory allows you to configure EHCache separately for each Hibernate instance using net.sf.ehcache.configurationResourceName property. The SingletonEhCacheRegionFactory shares the same EHCache configuration among all Hibernate session factories.
EHCache documentation recommends to use the non-singleton version.
Edit: This information applies to EHCache 2.8. Not sure how many things have changed in the latest version.