inside reset is an implicit begin: (begin (some-foo) (shift k ...)) so it will run some-foo always.
If you would do it this way instead, maybe it will act how you expected:
(define (fook v) (begin (some-foo) v))
(fook (shift k ...))
Basically: You have the right idea but got bit by an unusual situation with an implicit special form. Don't worry about it - try to solve ex 4 in the intended way.