Ответ 1
Здесь есть две самостоятельные вещи: 1) выполнил ли ваш пользователь аутентификацию вашего приложения (с разрешениями) на Facebook и 2) зарегистрировался ли ваш пользователь в Facebook.
Аутентификация требуется при первом использовании пользователем вашего приложения и продолжается до тех пор, пока пользователь не будет явно деактивирован (например, через настройки веб-аккаунта Facebook → Приложения → Настройки приложения).
Вход может потребоваться каждый раз, когда ваш пользователь запускает ваше приложение. Но если вы используете стандартную SDK authorize(), которая пытается выполнить единый вход (SSO), где, если приложение Facebook зарегистрировано, ваше приложение автоматически регистрируется и использует существующий токен доступа.
Если вы используете SSO, когда вы выполняете выход из системы, это не имеет никакого эффекта, так как реальный выход из системы должен будет отключить приложение Facebook, которое может не понравиться пользователю.
Вы можете обойти это поведение, выполнив авторизацию формы
authorize(this, PERMISSIONS, FORCE_DIALOG_AUTH, new LoginDialogListener());
который позволяет избежать SSO и заставляет логин войти в систему. Конечно, это заставляет вашего пользователя входить в систему при каждом запуске вашего приложения - если вы не сохраните регистрационную информацию/токен доступа под (что и делает SDK - проверьте источник).