hum...
check if i'm thinking wrong about the internal flow of mariadb/mysql ...

client send data over network
server receive data
server process data and check that it's a query command
server check query cache and return if found (that's how query cache execute today, right?)
(here no query was found in query cache)
server parse/optimize the query
(here where i want to include the 'normalized' query cache)
server execute the query
server send result to client (caching to query cache when possible)
server end query command