You have several choices really!
You could choose to go down the "2 project" route using shared Kohana modules - but I personally dislike the approach.
I would personally use a similar approach as a multi lingual site - So ... apache (or whatever) would rewrite m.example.tld/my/page -> www.example.tld/mobile/my/page
Assuming your using Kohana3 - The standard route could be changed to something like:
Route::set('messages', '<format>/(<controller>(/<action>(/<id>)', array('format' => '(mobile|desktop))
->defaults(array(
'format' => 'desktop',
'controller' => 'welcome',
'action' => 'index',
));
So - Users will never see the /mobile/ URLs, but you can now choose which smarty template based on Request::instance()->param('format');
Likely - You'll only need to duplicate the view files/smarty templates for each platform.
I use a similar pattern for output formats ... XML, JSON, XHTML, RSS ..
Hope this helps ;)