I think it would be fair to say that if they're not in <linux/sysctl.h> they're
not architectural, but that doesn't resolve the counterpositive (are there
sysctls in <linux/sysctl.h> which aren't architectural? From the looks of it, I
would say yes.) Non-architectural sysctl numbers should not be exported to
userspace, and should eventually be rejected by sys_sysctl.
This last bit doesn't make much sense. I believe you are saying all sysctl
numbers should be per architecture.