get_query_var() returns an empty string regardless of whether or not the query var key appears in the array. When no specific print page is requested, this causes is_print() to fail.
See http://wordpress.org/support/topic/plugin-wp-print-friendly-redirects-back-to-original-article and http://www.thinkoomph.com/plugins-modules/wp-print-friendly/comment-page-3/#comment-71090
Revert to inspection for print variable, rather than get_query_var. See
Though ae71e6a fixed this problem, it still feels hacky to me to interact directly with WP_Query's query_vars array. I'll work on a better solution at some point.