I see reform have started a debate about the meaning of being English which has stirred a few feathers. To my mind anyone who is born in the country is English..
I would say moving to a country does not necessarily make you a national of a country e.g. if I moved the South of Spain as a retired I don't know if could reasonably call my self Spanish but children of English people definitely could.
One thing that is worth debate is how you frame heritage and is this important? For instance would 2nd.generation immigrants from India would want to be referred as English but if Indian oriigin? Is there an actual desire for people of foreign heritage to maintain a part of their identity connected to their country of family origin for cultural reason?