That's a misconception, chess AI ineed has limited amounts of moves, but it still require more difficult algorithms (ratings) then used in most modern games, moreover it's not required for HoI AI to behave like genius, just not to look retarded.
It's just Al doesn't have enough attention (unlike say in Stardock games) and that's sad.
typedef struct
{
piece_t pieces[2][16];
color_t color;
int draw_clock;
int en_passant_dest;
int turn;
bool castle_w_short;
bool castle_w_long;
bool castle_b_short;
bool castle_b_long;
} pos_t;
Not true, the concept of heuristic pruning is used in AI to limit the search space - this is effectively discarding moves without evaluation or, as you put it, not examining all branches. Google Alpha-beta pruning if you're interested in more detail.