это нормальная практика, или может быть какая ошибка в случае, когда 2 объекта А одновременно вызывают метод из Б?
Зависит от того как устроен и куда обращается этот метод. Если он прямо или косвенно обращается к изменяемым глобальным данным без синхронизации или использования атомарного доступа -- может быть ошибка.
Например, обращение к любой из переменных global/class_static/function_static в следующем коде -- потенциальная ошибка:
int global;
class B
{
static int class_static;
public:
void f()
{
static int function_static;
}
};