SelectNode never triggers inside a node view

I have a recursive schema consisting in the following hierarchy:

    doc
      paragraph
         span
            text
            smartfield
               span
               paragraph

Where:

Block nodes

paragraph {
  content: 'span+',
  group: 'block'
}

span {
  content: 'inline*'
}

And:

Inline nodes

smartfield {
  group: 'inline',
  content: '(span | paragraph)+',
  inline: true,
  selectable: true,
  atom: true,
  draggable: true,
}

Smartfield has specified a nodeview, that looks like this:

{
  dom, // <div style="display: inline">
  contentDOM: dom
  selectNode() {
    // not triggered
  },
  deselectNode() {
    // not triggered
  }
}

Producing the following html render

<div class="paragraph">
  <div class="span">
    inline text
    <div class="smartfield" style="display: inline">
      <div class="span">smartfield</div>
    </div>
  </div>
</div>

This structure seems to work fine, apart from node selection, whenever I click on the smartfield node the selectNode never triggers. However, if I disable contentDOM and render the children myself, it seems the selection node API works as expected. What could I be missing?

Is the node actually getting selected as a node selection (via ctrl-click) when you test this, or are you expecting the method to be called when a text selection is made inside the element?

Thanks for the reply.
Since I have defined the ‘smartfield’ node as an atom (similarly to the footnote on the official example), I expect that clicking it, will trigger a selectNode. For some reason I cannot comprehend that does not happen. However, if I remove the contentDOM, it seems to trigger as per my expectations.
My example is similar as the footnote example on the docs, minus the fact that I specify the contentDOM attribute

See the docs for the atom setting—making a node an atom promises that it doesn’t render its content in the editor, i.e. it shouldn’t have a contentDOM property on its node view. This is for nodes that have content but whose content is managed in some other way, not directly in the editor.