I think denote is a good substitute for org-attach

Org-attach attaches a file to an org-roam node or creates an org-roam heading node. It couples files to org-roam nodes. This coupling is not a good design.

Denote decouples files from existing org-roam nodes.

If we use denote as a replacement for org-attach, we can move denote links anywhere among org-roam nodes.