I’d like to know whether I have correctly understood the ShallowHistory syntax or not.
Is this the right way to use it?

In the UML spec. it is said it can be used instead of the initial psuedo-state. I guess that in that case there would be no way to reset the State1’s memory while in this case the transition from State0 always starts from State1.1. Am I right?
Your interpretation seems correct. From the Superstructure:
And
And finally:
Note that from the last paragraph, it seems you should ALWAYS have a transition from the
Hpseudostate, at least to the same state pointed by theinitialpseudostate, otherwise you may have an ill-defined machine.I didn’t find where it says that you can use H* instead of the initial pseudo-state. Where did you see this?