1. Sure, query would perform better if index was created like (col1, col3,...) instead of (col1, col2, col3). Suppose your condition is:
... WHERE col1=1 AND col3=3....
Now suppose you have 10.000.000 records in that table. 1.000 records have col1=1, out of those only 1 record have also value col3=3. Now with index (col1, col2, col3) oracle will have to search all 1.000 index keys with col1=1 to find that single record that satisfies also col3=3. On the other hand with index (col1, col3) it will immediately find that single record that sattisfies both criteria.

2. Oracle can't combine multiple B*tree indexes in a single operation. With the above example, if you have separate single column indexes for each column c1 and c3, and your condition is again:
... WHERE col1=1 AND col3=3....
then oracle can use either index on col1 or col2, but not both together. So if you have 1.000 records that sattisfies col1=1 and 1.000 records that sattisfies condition col3=3, but only one record sattisfies both conditions col1=1 AND col3=3, the combined index on (col1, col3) or (col3,col1) will be much more selective and more efficient for that query.

3. For start, I think the explanation in the following url is sufficient: http://www.ixora.com.au/tips/tuning/cache_miss.htm

4. IMHO the cost does not give us any meaningfull information. Generaly you can't compare costs of two different queries (even if they produce the same result). Cost is meaningfull only to the cost based optimizer to choose the best from various possible execution plans *for the same* query. To find out more how CBO actually works, you can check the following document: http://www.evdbt.com/SearchIntelligenceCBO.doc