for "phil.l", I'd suggest another change (besides the call to 'hear').
You tried to use 'rpc' to send messages to the other philosophers. While
this is basically a correct idea, 'rpc' is not suitable in the current
situation. It sends the message via standard output, and is intended to
be used in a 'pipe' call.
Instead, you could directly call 'pr', so that
(rpc 'obtain I)
(pr (list 'obtain I))
(rpc 'give I)
(pr (list 'give I))