Yeah, your approach should be fine. At the end of the day, the most important thing is that the ERC165 checks return the correct values, and these are unaffected by either whether you’re using a contract vs interface, or by function visibility or mutability — so either should work.
So your solution is perfectly acceptable. If other people will be working with your code, or if you plan on putting it on a public repo when you publish your DApp, you may want to add a code comment explaining why you made the change. But from a technical standpoint, I think it’s fine.