Where does chkp_can_be_shared get used? Normally the thing to do
would just be to call unshare_expr. It'll create copies as needed. If
it's something that is supposed to be shared then it'll leave it alone.
If you need to do something different than unshare_expr, then that
needs deeper investigation as you're mucking around in the structure
sharing assumptions and that's not to be done lightly.