Вы не совсем задаете вопрос. Вы проверяете правильность своего решения или ищете альтернативное решение?
Вы также можете реализовать это следующим образом через
(apply + (filter even? lst))
edit: Если, как вы упомянули, вы не можете использовать фильтр, это решение будет работать и является рекурсивным:
(define (sum-even lst)
(let loop ((only-evens lst) (sum 0))
(cond
((null? only-evens) sum)
((even? (car only-evens))
(loop (cdr only-evens) (+ (car only-evens) sum)))
(else (loop (cdr only-evens) sum)))))