Using node_view() to display a node doesn't print local menu items When using node_view() to display a node (via return from a function that's called in hook_menu()) the usual View/Edit tabs are missing.

Is this expected behaviour?
Yes this is expected. The reason they are there, is because the path of view a node is at node/[nid] and the edit/view is at node/[nid]/edit. If you changed the default node path with hook_menu_alter the tabs on all nodes would disappear.

The reason they are there, is because they are of type, MENU_LOCAL_TASK, check out the documentation on hook_menu, if you need to know more.