Dependencias del módulo cíclico e importaciones relativas en Python

Supongamos que tenemos dos módulos con dependencias cíclicas:

# a.py
import b
def f(): return b.y
x = 42

# b.py
import a
def g(): return a.x
y = 43

Los dos módulos están en el directoriopkg con una @ vac__init__.py. Importandopkg.a opkg.b funciona bien, como se explica enesta respuesta. Si cambio las importaciones a importaciones relativas

from . import b

Me sale unImportError al intentar importar uno de los módulos:

>>> import pkg.a
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "pkg/a.py", line 1, in <module>
    from . import b
  File "pkg/b.py", line 1, in <module>
    from . import a
ImportError: cannot import name a

¿Por qué me sale este error? ¿No es la situación más o menos la misma que la anterior? (¿Está relacionado conesta pregunt?)

Edita: Esta pregunta no se trata del diseño de software. Conozco formas de evitar la dependencia circular, pero de todos modos estoy interesado en el motivo del error.