I've been trying to get a "generic" dialog, with autocomplete functionality, to work for a few days now. Turns out, I was just creating the MethodExpression the "wrong way". So I thought I'd document this here.
To reiterate: You want to dynamically create a MethodExpression, store it in a Property and use it in a JSTL Template or JSF Page.
For example:
// Template
<c:forEach items="#{property.subItems}" var="subitem">
<ui:include src="editor.xhtml">
<ui:param name="autocompleteMethod" value="#{subitem.autocompMethod}" />
</ui:include>
</c:forEach>
// editor.xhtml
// We're using RichFaces (unfortunately), but this is just an example
<rich:autocomplete mode="cachedAjax" minChars="2"
autocompleteMethod="#{autocompleteMethod}"
/>