Afaik where() expects 2 or 3 arguments, either "field" and "value", or "field", "operator" and "value". The error you get here is because only 1 argument is passed (hence the invalid param count).
1.8/dev has more support for DB::expr() in where() clauses, but I'm not sure this scenario is supported, you'll have to test that.
If you're using git, simply checkout 1.8/develop. if you're using composer update it with --prefer-source, and if you've used the zip, make a copy of your fuel installation folder, and swap fuel/packages/orm with the contents of https://github.com/fuel/orm/archive/1.8/develop.zip.
I am a bit confused now, the topic I linked to (http://fuelphp.com/forums/discussion/11587) seems to imply that as of version 1.7.1, where supports passing a DB::expr() as the only argument. Is this not the same interface that calling query() on an ORM model uses?
The SQL builder seems to understand it from the looks of it, but the where() method bails out directly if only 1 argument is passed, so it doesn't even get to building the SQL.
You could test by disabling the "Invalid param count for where condition." exception in the _where() method, and see what the result is.
It could be a
if ($condition instanceof \Fuel\Core\Database_Expression)
But there are more issues: ORM does not support bind(), and ORM uses generated table aliases which you have to use to prefix "article" and "title", but you don't know what is generated.