Bullet No. 1: If you place verification functions in the Page object, They will still be used/called in the test layer.
You can either implement your assertions in the PO or in some utils folder. Both cases you still only call those methods in the test layer. So there's never a mixture of verifications functions in 2 layers.
Implementing verifications functions in the test layer is more bad practice. Bloated code which makes the tests difficult to read. Not really a PO issue.
Bullet No.2: I see verification functions in page object as an API's schema because when i access the PO i know these are the verification functions available to me on that page. Its more like an api schema, telling you what's available on that api.
Bullet No.3 A Page object verification is verifying something on a page. Not verifying a particular test. So you shouldn't have "verify for test01" in a PO, it should be "verify component01". Then use that verify in your test layer.