Shader Normal Input: Cycles seems to ignore, Eevee works fine?

In realtime rendering it’s quite common to bend normals to your will, in the case of imposters and such.
I’ve made this little experiment, after I found out I wasn’t quite getting the results I expected in Cycles:

I have a little pyramid shape, and a sun lamp that lights it.
As you can see in my shader editor, I plug a custom vector into the Diffuse shader node, that should make the normals point up.

This should make it so the sun light should light the pyramid equally, and indeed, in Eevee:

The pyramid appears evenly lit.
But in Cycles:

It doesn’t seem to do anything?

In fact, comparing this to nothing plugged into the normal input:

No difference.

Am I doing something wrong?

Oops, this was with smooth shading turned on, please ignore:

Ignore :)

The plot thickens:

Reconstructing the pyramid from a flat plane using displacement set to Displacement Only does work?
No shading problems there?