Does the WP-O page cache work with non-pretty (query parameter-based) permalinks?

No. It’s necessary to have pretty permalinks of the type rather than Pretty permalinks are the WordPress default setting, and there is no good reason to turn them off, so you should not have a problem with this.

Note that permalinks including /index.php/ are cacheable. It is only those based upon query parameters (?…) that are not.

Posted in: Cache