В данном конкретном случае - лучше второй вариант
def test(a):
if a == "abc":
result = True
elif a == "123":
result = False
# если a != "abc" и a != "123" будет выброшено исключение, UnboundLocalError, так как result не определен
return result
def test(a):
if a == "abc":
return True
elif a == "123":
return False
# если a != "abc" и a != "123" будет возвращено None, как значение при отсутствии или пустом return
Если функция сложная, return - один, значение по умолчанию инициализировано в начале функции, если что-то простое и наглядное, можно и несколько сделать, на мой взгляд