Not sure in `MetadataStore` in this case. It designed for runtime purpose.

There is no difference if we declare `PropertiesFactoryBean` on beckground, or end-users provides his own `<util:proerties>`. And it's up to him where to get properties from.
E.g. I often read properties from DB: 
````xml
<bean id="databaseConfiguration" class="org.apache.commons.configuration.DatabaseConfiguration">
	<constructor-arg ref="dataSource"/>
	<constructor-arg value="MYPROPERTIES"/>
	<constructor-arg value="PROPERTY"/>
	<constructor-arg value="PROPERTYVALUE"/>
</bean>

<bean id="myPropertiesFromDB" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean"
	  p:staticMethod="org.apache.commons.configuration.ConfigurationConverter.getProperties"
	  p:arguments-ref="databaseConfiguration"/>

<bean id="myPropertiesFile" class="com.my.proj.util.spring.FakeClassPathResource">
	<constructor-arg value="my.properties"/>
</bean>

<bean id="myProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean"
		  p:location-ref="myPropertiesFile" p:properties-ref="myPropertiesFromDB"/>
````

Re. SpEL, also don't see difference: `expression="@integrationProperties['some.int.prop']"`
Or do you mean register all properties as `EC` `variables`?