odd behaviours from template tags

Post ID is not an argument in the_title() (see Codex article). Accepted arguments are:

the_title( $before, $after, $echo );

Take a look at the source code. The function the_title() calls get_the_title() with no arguments, whereas get_the_title() takes a Post ID as its only argument. If you want the title of a post/page other than the current one in the query, stick with echo get_the_title(....

Edit: BTW, Post ID is an argument for neither the_content() nor get_the_content().