On the save issue, speaking as someone who programs in Unity, saving a full state in Unity, without any plug ins, is a tedious and difficult process as you have to make it store information on every single gameobject that can be manipulated or changed in any way. Every position, rotation, scale, every variable, has to be manually told to save. That being said, the fact that reloading a save doesn't even put you at the last respawn point is very problematic. I can even produce some pseudocode to show how it can be done.
(On establishing a spawn point)
Gamemanager.instance.lastspawnpoint = id number assigned to the save point;
(On reloading a save)
foreach(Gameobject in scene with the tag "spawnpoint")
if the id of the last spawnpoint == the id of the current pointed spawnpoint, transform the position of the player to that point
else
spawn the player at the starting point of the level.
I don't mind not being able to save everywhere, it can prevent cheesing with quick saves. But the fact that it doesn't even bring you to the last spawn point, or even check point, is a major problem.
I'm still enjoying the game, but I'm genuinely surprised that this oversight was left in the game.