According to the Web forms for marketers 2.3 reference guide, I can set formsRoot parameter in my site definition. And this is my config for the site.
<site name="example"
hostName="www.helloCommerce.com"
virtualFolder="/"
physicalFolder="/"
content="master"
rootPath="/sitecore/content/E-Commerce Examples"
startItem="/home"
database="web"
domain="extranet"
allowDebug="true"
cacheHtml="false"
htmlCacheSize="10MB"
EcommerceSiteSettings="/Site Settings"
browserTitle="Example"
registryCacheSize="0"
viewStateCacheSize="0"
xslCacheSize="5MB"
filteredItemsCacheSize="2MB"
enablePreview="true"
enableWebEdit="true"
enableDebugger="true"
disableClientData="false"
ordersDatabase="orders"
actionLogDatabase="logging"
patch:before="site[@name='website']"
formsRoot="/sitecore/System/modules/Web Forms for Marketers/local forms"/>
And I will go through the process of creating the web form by: All Applications/Web Forms for Marketers/Create a New form after I have filled in all the fields, and in the last step (confirmation), the form always will be created in /sitecore/system/Modules/Web Forms for Marketers/Sample forms/Example Form but not in 'local forms' folder.
Did I miss out any step?
I do it like :
<sites>
<site name="website">
<patch:arttribute name="formsRoot">{4F42E032-6174-4A79-B3B0-5056494D6B39}</patch:arttribute>
</site>
</sites>
and it works fine for me, please check if is working . On your case just modify path of item with item ID.