No, your initial understanding was correct! {{{ [[aaa bbb ccc]match[aaa]] }}} wouldn’t produce anything, but since you were already using enlist, you’re testing three separate inputs, not one, and match returns the one title that does match aaa in its entirety.
{{{ [enlist[aaa bbb ccc]match[aaa]] }}}
is equivalent to
{{{ aaa bbb ccc +[match[aaa]] }}}
(I think @clsturgeon forgot to delete the :title suffix when he was modifying your filter; match only has two (optional) suffixes, casesensitive (the default) and caseinsensitive.)
I think of contains as belonging to a similar conceptual space as listed: it works exclusively with fields. And in fact, if you have a tiddler titled “aaa”, {{{ [enlist[aaa bbb ccc]contains:title[aaa]] }}} will return aaa! But if there is no tiddler aaa, aaa has no title field, so the filter doesn’t return any results.
This is in contrast to something like [{!!title}], which is really just a synonym for [<currentTiddler>] and doesn’t require an actual tiddler with an actual title field… so there’s probably room for some clarification in the docs.