Interesting side aspect to what I could already read everywhere... but when you say "hard coded and cannot ever be changed" do you mean theoretically? What is "hard coded" as opposed to... "soft code"?
Hard coded means that a parameter is explicitly coded into the software and cannot be changed by a user. The only way to change it would be to get the source code and modify it yourself.
When I say that it cannot ever be changed, I mean that changing the genesis block would mean that you are no longer using Bitcoin. Furthermore, the user cannot ever change the genesis block themselves.
As I understand, yes, the blockchain in theory cannot be changed but this is not to say it is impossible.
It is impossible to change the genesis block and still be using Bitcoin.
I have tried to read up why, but I assume this is partly because it would require a re-writing for all the nodes and consensus to do so. Am I correct?
Yes.
If, I am, would a consensus to change block genesis in theory reverse the fact of "cannot ever be changed"?
Yes, and this would mean that Bitcoin is no longer immutable and IMO a lot of people would stop using it.