From all I see, SET STATEMENT ... FOR SELECT queries are not put in the query cache and do not use it, whatever parameters are.
Then, SET STATEMENT query_cache_type = ... can't have any effect, and thus should be disabled with ER_SET_STATEMENT_NOT_SUPPORTED. Same is probably true for other query_cache_* variables potentially changeable in SET STATEMENT context (query_cache_strip_comments? query_cache_wlock_invalidate?).
In Percona server it looks even worse, SET STATEMENT .. queries are put into the query cache, but never hit it.