Can I pick any string for x?
Yes, you can pick any string.
Does it need to be unique at some scope (global? org?)
Yes it has to unique at the org scope.
Will the app create command fail if X is not acceptable?
It shouldn’t fail if you’re passing a “normal” string. If you pass something weird, it will probably fail.
What are some ways I can verify an app’s network id, post app creation?
There are no ways that i’m aware off. You will have to do that book keeping on your end.
fwiw, it should be relatively easy to expose on our end so if I have some time today, I can look that.