Yes, wrapping the get_field() call inside an acf/init action in function.php is required. You can define the field group without it but if you try to get a value you are getting a value directly inside functions.php that happens before init.
No, it is not. Not according to documentation and also not looking at the code.
Please follow the code.
Getting the actual value happens after these steps. Always.
Welcome to the Advanced Custom Fields community forum.
Browse through ideas, snippets of code, questions and answers between fellow ACF users