היי HataVeani, ברוך הבא לפורום!
המילה "בן" היא שם עצם, זה חלק הדיבר שלה והוא לא משתנה. "תפקיד תחבירי", לעומת זאת, יכול להשתנות לפי המשפט. מכיוון ש"בן דוד" אינו משפט, אין כאן שאלה תחבירית. "בן דוד" הוא צירוף סמיכות, וכמו בכל צירוף סמיכות, המילה הראשונה נקראת "נסמך" והשנייה "סומך". מדובר בשם משפחה שמקורו מילולי לגמרי (דהיינו, שם האב) והמקרא מלא בדוגמאות: "כלב בן יפונה", "יהושע בן נון", "שאול בן קיש", "דוד בן ישי", "יואב בן צרויה" (שהייתה אמו, זה די נדיר), "בני יעקב" (לימים "בני ישראל") ועוד.