Or maybe that it looks too sharp?
Or how sharp you should expect it to be?
I have. And I've seen quite a bit written about the topic of sharpness. But somehow what I've seen written hasn't exactly fitted what I wanted to know.
Finally I decided to run a few careful experiments and try to make sense of the results myself. (Sometimes that helps, sometimes it doesn't. You know how the game goes.

After a bit of thrashing around, I got some results that are worth writing about. This post includes a good sampling of them.
The "big picture" consists of three small printed USAF resolution charts taped to a whiteboard and lit by a couple of desk lamps. Let's take a picture of the resolution charts and see what comes out.
Here is full frame and a 1:1 ("actual pixels") crop, from a Canon 300D.

Notice that the picture shows very good separation of the lines in Group 0, Element 4. (That's the little block of 3 lines with the red arrow pointing to it.) Those are clearly resolved. Separation drops off from there down. Element 5 still looks OK, although a bit blurred on the 45 degree chart (right side). Element 6 is marginal (check out the 45 degree chart, at the green arrow). Group 1, Element 1, is hopeless (yellow arrow).
How well does this compare with what "could" be done?
I want to come at that question from a couple of different directions.
First, let's take the camera out of the picture and do some playing with Photoshop. That way we don't have to worry about lenses, anti-aliasing filters, demosaicing the Bayer pattern, and probably a host of other issues that haven't even occurred to us.
So here's the test. We generate a grid of evenly spaced lines -- black/white/black/white -- and see what happens when we just try to render it at various resolutions. (Photoshop CS, version 8.0, using image resize with cubic interpolation, starting from a grid that alternates 10 white pixels, 10 black, and so on -- 20 pixels per line pair.)

At this point, it's tempting to invoke Moiré and Nyquist, say "well, of course", and move on to something else. But I think that misses an opportunity to develop some useful understanding, so I'd like to take a more intuitive approach. (It's my understanding we're talking about developing here, OK? You folks get to help or just to come along for the ride or even ignore me, as you choose.)
In brief, the output image -- the one we're seeing -- is constructed by making each output pixel be some weighted average of input pixels (the 20 pixels-per-line-pair grid). The exact weights depend on how the output pixel spatially maps to the input pixels.
For example, if the center of the output pixel falls exactly on a black-white transition of the input, then we would expect the output pixel to be a 50% gray. If the center of the output pixel falls exactly in the middle of a white block of input, then we'd expect the output to be, well, maybe not exactly white, but pretty close to it if the average covers mostly white pixels of the input.
Therein lies the rub. A couple of them, actually. First, when the pixels-per-line-pair gets small enough, every weighted average starts including a significant number of both white and black input values, so you never get pure white or pure black output, only lighter and darker grays. Second, even when the pixels-per-line-pair is large enough that the weighted average goes to pure white or pure black for some alignments of the pattern, there are other alignments of the pattern for which it will still be lighter or darker grays.
So, to figure out how many pixels-per-line-pair yield acceptable contrast, we might want to worry not only about best case, but also average case, and maybe even worst case!
What the illustration shows, to my eyes, is that 2.05 pixels-per-line-pair clearly doesn't cut it. That's no surprise, since the Nyquist-Shannon sampling theorem says that 2.00 would be the absolute limit.
But I'm not very happy with 2.55 either -- when I look closely at the pattern there are a whole bunch of places where what started off as black/white/black/white/black ends up being black/gray/gray/gray/black -- essentially losing the middle line!
At 3.05 pixels-per-line-pair, none of those B/W/B/W/B transitions actually get lost, although the rendition of them varies quite a bit depending on how they happen to line up with the pixels. (Some are mostly dark, some are mostly bright, some look more contrasty than others.)
3.55 pixels-per-line-pair looks pretty good, and it gets better from there on out.
These results completely support the common "safe" strategy of allocating 4 pixels per line pair. I'd say you can get by with 3, if you're more tolerant of variable appearance depending on how features happen to line up with the pixels. But pushing below that definitely strikes me as dicey -- sometimes you see a feature, sometimes you don't!
With that as background, let's look at some more real images.
At this point, I have to explain to you that I have taken some care to remove lens resolution as a factor. I'm using an excellent quality prime lens, in the center of its field of view, and to make very sure that the optical image is much better than the resulting digital sample, I have 1) stepped focus by small increments to make sure I have the best focused frame, and 2) checked the optical image by itself to be sure that it contained much more detail than what appears in the digital rendition.
In the montage that you see below, the upper left corner shows the optical image presented to the camera sensor, while the upper right corner shows the digital image recovered from that sensor. The optical image was captured by essentially focusing a microscope on the aerial image formed by the lens. The mechanics were a bit odd -- a microscope lens on bellows -- but I don't think there will be any serious doubt that the image projected by the lens contains a lot more detail than is captured by the camera.

OK, so we're presenting a high resolution optical image to the camera, and it's capturing a rather lower resolution digital image for us to do with as we please.
How good is the digital image, compared with how good it could be?
At this point, we know how good it could be -- 3 pixels per line pair. Any less than that is pushing our luck.
It turns out, when you measure the images, that Group 0 Element 4 is 3.5 pixels per line pair -- less than 20% worse than our 3 pixels per line pair standard. That's pretty good!
But it is the end of the story? Not really.
At first I thought it was. But then I took the aerial image, as captured through the 10X objective, and ran it through Photoshop resizing and rotation to match the digital images recovered from the camera. Those results are interesting because I see in them that Group 1, Element 3 is resolved in the Photoshop rescaled image, versus Group 0, Element 6, for the digital camera image.
Now, it turns out that Group 1, Element 3, is almost exactly 2.0 pixels per line pair in these images. But wait --- I decided from the grid experiment that 2 pixels per line pair was unacceptable, and now it looks fine?! The same eyes and the same brain are making both decisions -- what's going on?!
The answer (I think) has to do with how my perceptions are affected by luck and attention.
When I look at the grids, I ask the question "How well can I see the detail that I know generated this image?"
But when I look at the resolution charts, I ask a different question: "What's the smallest block in which I can see lines?"
In retrospect, it should not be surprising that these different questions produce different answers. In the first case, I'm demanding to see all of the lines, but in the second, I'm content to see any of them.
Suppose it turns out, due to luck of how the test pattern is positioned, that I cannot see lines in some particular block A, but I can see them in some finer block B. In that case, do I say that the image resolves at the fine level of block B, or not even at the coarser level of block A?
This strikes me as being an interesting question that I don't recall reading about.
The issue only arose with digital photography. In traditional analog media, it simply doesn't matter exactly where you place the test chart -- if Group 0 Element 6 resolves at one position, it will also resolve at all nearby positions. But in digital, it can matter a lot. As we see in the grids, detail at 2 pixels per line pair either resolves wonderfully, or not at all, or something in between, depending on exactly how it happens to line up with the pixel grid.
OK, I think I understand this well enough now for scientific work. 4 pixels per line pair is safe, 3 is OK if I can accept some unevenness, and 2 is throwing dice.
Throwing dice is not always a bad thing, by the way. If all I want to know is whether the dice have any 3's on them, then throwing them a bunch of times and counting what comes up is one perfectly reasonable strategy. In the same way, if I have a sufficiently sharp digital camera, I can reliably expect to see some detail at a scale of 2 pixels per line pair if there's any such detail in the subject. I just can't be guaranteed to see all of it.
But what about aesthetics? What's required for a digital image to be perceived as "sharp"?
We're talking about subjective impression now, but I'd like to try understanding what that impression means in objective terms.
Based on introspection -- always dangerous, but hey, it's cheaper than dealing with human subject committees -- I'll speculate that a digital image looks "sharp" when it "shows detail at the level of individual pixels", which in turn means seeing dark/bright/dark (or bright/dark/bright) in adjacent pixels.
Hhmm...
Assuming that's right, then we've stumbled onto a bit of a Catch-22.
A digital image will only contain dark/bright/dark patterns in adjacent pixels if either (a) it's representing real detail near the level of 2 pixels per line pair, or (b) the pattern does not represent real detail, but instead is some sort of artifact due to noise, excessive USM, or something similar.
Let's presume that (b) is not the case, since nobody likes stuff that looks like detail but isn't. (OK, that's not strictly true. Some people just love stuff that looks like detail but isn't, but I'd like to stay away from fractal compression in this discussion.)
OK, so it's (a) -- our digital image looks "sharp" because it contains dark/bright/dark patterns that are due to real detail near the level of 2 pixels per line pair.
But we've seen from the grid demonstrations that detail at that level gets captured only if it's favorably positioned.
That's the Catch-22.
In order for our digital image to "look sharp", we have to shoot it or render it at a resolution that virtually guarantees some of the detail in the optical image will be lost. If you see some tiny hairs just barely separated at one place in the digital image, it's a safe bet that there are quite similar tiny hairs at other places that did not get separated, just because they happened to line up differently with the pixels.
Conversely, in order to guarantee that all the detail in the optical image gets captured in the digital image, we have to shoot and render at a resolution that completely guarantees the digital image won't look sharp.
So, there's "sharp" and there's "detailed" -- pick one or the other 'cuz you can't have both. What a bummer!
Still, I am perversely pleased to have reached this understanding. I have regularly gone through the exercise of choosing what percentage to rescale some fuzzy high magnification image so that it looked as sharp as possible while not losing any detail. Somehow the result never ended up looking as sharp as I would like. Now I understand (or think I do!) why that is, and why it has to be that way. That's a good thing, because it will free my mind to obsess over something else.
OK, now back to the one remaining question: how well does the Canon 300D image compare with what "could" be done? That is, how well does the image that the camera actually captures, compare to one from a "perfect" sensor with no anti-aliasing filter, no Bayer demosaicing, and so on?
One reasonable way to address that question is by using Photoshop to simulate the perfect sensor. We can do that because using the microscope setup, we've captured a very high resolution digital version of the optical image that would be presented to the sensor. The idea is simple enough, though a bit tedious, and for once I won't bore you with the details. You just replicate the image into a whole bunch of slightly different positions, resize to match the camera's pixel size, and see what resolves.
The answer turns out to be that the 300D's image has around 3 USAF chart elements less usable resolution than the simulated perfect sensor does. In figure 3 above, you can see that the simulated perfect sensor fairly reliably resolves Group 1 Element 3, while the actual camera does Group 0 element 6.
In the USAF charts, there's a 2X difference in size between each group, and the difference between elements is the sixth root of that. A different of 3 elements means a factor of 1.4X.
In absolute terms, the simulated perfect sensor works down to roughly 2 pixels per line pair, and the camera bottoms out at 3 pixels per line pair. This is comfortably better than the 4 pixels per line pair that's "safe" for capturing all the detail present in an optical image.
This seems like a good stopping point. My brain has been working hard to get this stuff straight, and it's time to take a hike.
Thanks for listening -- you've been a big help!
--Rik