IMO the separate buttons is better in two reasons: usability of shift button and ability of symbols charset extention (e.g. separate charsets for symbols and for shift+symbols).