答えは一部YESで、ほとんどNOです。
Robot Frameworkは、ざっくり言うと、テストデータを一行づつ逐次読んで実行するインタプリタのように動きます。
キーワードを実行するときは、それがユーザーキーワードなら、ユーザーキーワード定義の中のキーワードを順に実行していくだけです。
最初から使える標準ライブラリのキーワードや、テストライブラリのキーワードは、内部的にはPythonで書かれた関数になっていて、Robot Frameworkは、こうしたキーワードに到達すると関数を呼び出します。
「一部YES」の部分は、式の評価の部分です。
例えば、 Run Keyword If の最初の引数には、 $answer==42 のような文字列を書くことができ、テストの実行時には、Python で if answer==42: と書いたような挙動になりますよね。
実際には、Run Keyword If はこんな感じの関数で実装されているはずです:
def run_keyword_if(cond, name, **kwargs):
....
そして、このキーワードの第一引数に文字列「$answer=42」が渡されると、Robot Frameworkは、この文字列をそのまま関数un_keyword_if() に渡します。関数の中では、文字列を加工して、最終的に 「answer==42」という文字列に変換します。最後に、Pythonのeval() を使って、この式の部分だけをPythonコードとして実行して、その結果を関数内の処理に使います。(他にも細かいステップがありますが、割愛。)
なので、テストシナリオをPythonにコンパイルするわけではありません。
逆に、キーワードの根底の部分はただのPythonの関数やメソッドなので、Pythonで簡単に複雑なロジックやループ処理を含むキーワードを書けます。