Unfortunately, this is not the same case. In my case the base of FooDerived is a specialized template class.
In fact I made a mistake in the description code. In real case I did not overwrite the Base() method in FooTemplate. As a result FooDerived couldn't call Bar() from its base. And the base in that case was FooAbstract::Base(), which was unaccessible. Why?
When I overwrote Base in FooTemplate the code started to work fine. But still, even if I didn't overwrite the Base() method in FooTemplate it should be called from the closest base of a base of a base... that was implemented. But wasn't...