class B : public Awrapper {
  public: void Func2( ){ Func1( ); }
 };
あるいは
 class B : private Awrapper {
  public: void Func2( ){ Func1( ); }
 };
と書くのがダメだとしたら、
 class B {
  public: void Func2( ){ Func1( ); }
  private: void Func1( ) { m_pA->Func1( ); }
  private: A* m_pA;
 };
もダメだと思いますがいかがでしょうか。
Awrapper が明示的に抽出されていないだけで、
その役割をBに与えてるのは同じですよね。

まぁこれは原理主義的過ぎる考え方だとは思いますがね。