We don't exactly inline the CSS. (Actually, to be perfectly honest, sometimes we do when that seems like the more efficient thing to do and there is no benefit of modularity to be got from CSS.) However, in general we actually construct the HEAD and CSS also through the server library using some logic and parameters.
Now, you are right, this means that from page to page, those 3-4 bytes might be the same and re-downloaded. However, we are focused on mobile phones and some of our user base is on crappy mobile phone browsers (Nokia phones that are still popular here) that have a bad caching system. So the trade off is between 3-4 bytes of CSS that is a repeat, versus a whole new request. And 3-4 bytes of CSS is not even noticeable. A request most defiantly is.
We have worked pretty hard to push the speed at which our mobile webpages load.
In the interest of sharing...this is what has worked for us:
1. We don't have any references to external CSS and JS files. This means there is almost no reason for the browser to stop painting the webpage as soon as it starts getting the document or even fractions of it. This means that the user never gets impatient cause it seems that his device is doing nothing. I know this seems like a huge management hassle in terms of changing things, but we got over that by using a server side helper library that spits out the HTML of all the components based on certain input parameters. That way the HTML of the user interface is even more modular and centralized than CSS etc. Besides, it also makes the making of new pages a craft project of sticking different user interface blocks together.
2. All user-interface images for buttons and icons and all are in image sprites. So, an average page is just 2-3 requests. Also sprites once cached load beautifully. In fact, it also makes for a much more pleasing page load as opposed to some parts of the page coming in and some coming in a little bit later.
3. All background repeating images are make 1px thick and saved as optimized as JPEGS and then made part of the CSS with base64 encoding.
4. Of course we very aggressively cache and reduce DB calls and combine DB calls etc etc.
Having done all this, we find that our pages load...well more or less instantly at least with respect to what matters to an average human. But this instant loading is only on a network where the initial connection time is not relevant. On 2G & 3G even, all the optimizations in the world cant save you from the fact that the device takes a LONG time to just connect as Ilya Grigorik has mentioned in his presentation.
I'm gonna be That Other Other Guy and say....stuff like this is the reason why most programmers I meet take ages to do anything custom. Evey body uses this framework and that library and make bulky code that could actually be implemented with 2 far more efficient lines and will struggle when the need to customize presents itself. Learn Regex...you will have a crazy powerful weapon in your arsenal.
I am a programmer. I am not a software Engg. I am actually a Production Engg. However, I am a programmer. I'm a little bit older than you....27.
Let me tell you what I spend my days doing. I sit in a CCD (Cafe Coffe Day) with my best friend from 10:30 - 1 pm and code and work on making a beautiful product. Our product caters to the Indian market. We make a decent amount of money. Enough to allow me to buy my first house and go for vacations every few months.
My problem with your post is your attitude. India is an amazing country to me cause the market is so insanely large that if you capture a niche of a niche of a niche.... you can live a great life. In fact, I will argue, you can have a more beautiful life than you would in countries like the US etc. You will be able to delegate all boring aspects of your life (to maid and cooks and helpers and assistants who are all very cheap because labor is cheap) and just focus on what you want to do. That is the beauty of India. I could go on and on. But, let me assure you, that you are missing out if you think its a bad thing to be a skilled programmer in India.