ok, to your first issue, you can do:
if (is_page(1) || (is_page(2) || (is_page(3)) {?>
But go read the Wordpress Codex on conditional Tags, this will help you design the code more efficiently.
they way we're doing this, yes, you are loading the default style.css first, then for our custom pages you are adding a second stylesheet to override the first.
There are a couple ways of doing this, this method is arguably NOT the most efficient (but is one of the easiest and most straightforward, but if your site isn't receiving 10,000 visitors a day, the performance hit is insignificant.
You could just add template specific CSS to style.css, such as
page-template-yourpage body {color:#ffffff;}
but as a site grows, in my opinion things get unwieldy, and its better long term to keep stylesheets (and other things) compartmentalized for easy maintenance.