ZEN 5 Responsive - general questions
The short answer is yes; the .front class is more than adequate.

Using SASS nesting, your CSS would probably end up looking something like the following.

@media all and (min-width: 960px) {
 $zen-column-count: 5;

 .front {
   .sidebar-first {
    #content { 
     @include zen-grid-item(4, 2);
     color: red;
    }

    .region-sidebar-first {
     @include zen-grid-item(1, 1);
    }
  }

 /* not-front pages */
 $zen-column-count: 10;

 .sidebar-first {
  #content { 
   @include zen-grid-item(7, 3);
  }

  .region-sidebar-first {
   @include zen-grid-item(3, 1);
  }

 }
}


Note that I've removed the .not-front class from the second batch. Adding the .front class to the first block gives it a higher level of specificity, so it can't be overridden by what is in the second block. Basically, if you are using .front for the first bits, then it is redundant to use .not-front for the second block.

As an FYI, there is an awesome CSS specificity article here.