"...we leave Amsterdam on a Saturday at 8am and arrive in St. Goar at 3pm."
OK, assume it's 7 hours because you're stopping over somewhere for lunch or maybe Cologne cathedral so yes, your day is pretty full there and Rheinfels makes very good sense.
Bacharach and Oberwesel just to the south are pretty outstanding places. I'd combine one or the other with a visit to Rüdesheim, since that place is on your list, and include a cruise through the best part of the Rhine. Ferry across to St. Goarshausen in the morning and catch a train (9:26) south to R'heim (9:51.) Lunch there. Catch the 14:15 boat to Bacharach (15:15) for a couple of hours there, then the 17:15 boat for St. Goar (17:55.) If you feel like visiting Oberwesel after that in the evening, it's just 5 minutes to the south by train, and there should be sunlight until late in the evening.
On the other day: I'd combine Marksburg and Cochem. Marksburg is the premiere medieval castle on the Rhine. Ferry across to St. Goarshausen. Train (9:32) to Braubach (9:56.) See town briefly and hike up or shuttle up for tour. Return to town, Lunch. Depart 13:24 train for Cochem (30-min. layover in Koblenz) where you arrive 14:41. Spend several hours there and return at your leisure to St. Goar via Koblenz by train. The chairlift ride there and/or the hike up to the castle provide really nice views.