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.
1) get_field
2) acf_maybe_get_field
3) acf_init();
….
Getting the actual value happens after these steps. Always.