Uso del método locals () y formato () para cadenas: ¿hay alguna advertencia?

¿Hay desventajas, advertencias o advertencias de mala práctica sobre el uso del siguiente patrón?

def buildString(user, name = 'john', age=22):
    userId = user.getUserId()
    return "Name: {name}, age: {age}, userid:{userId}".format(**locals())

Tenía un código de generación de cadenas muy repetitivo para escribir y tuve la tentación de usar esto, pero algo sobre el uso delocals() me hace sentir incomodo ¿Hay algún peligro de comportamiento inesperado en esto?

Editar: contexto

Me encontré constantemente escribiendo cosas como:

"{name} {age} {userId} {etc}...".format(name=name, age=age, userId=userId, etc=etc)

Respuestas a la pregunta(4)

Su respuesta a la pregunta