Because of the way that WordPress loads plugins, its possible that bp_init is firing before your plugin has added the hook. If that’s the case, your function is safe to run and needs to be called directly as a fall-back.