Yes and no. Using only the bumpmap, it’s not doable without some expensive tricks. Bumpmaps don’t occlude themselves, and this is particularly noticeable when the angle between the incoming and the normal becomes bigger. For that to work, you need to undergo with some parallax occlusion to hide the parts that should be occluded by other parts of the surface more near the camera.
In your first post, the amount of green you see at grazing angles should be almost none, but still there it is. If you think only on the uvmap, each point will linearly follow the uvmap, and since the uvmap drives the normalmap and not the other way around, then green parts will occupy the same relative percentage as if seen from a frontal view.
Most of the times, you don’t need so much detail, and you can fake the sene with the layer weigth, or have two different bumpmaps, one for facing, the other for the sides… There’s a thread, I think from Varkenvarken but not sure, where he explores a bit of the math to set a more realistic aproximation to the amount of light that is reflected, absorbed and gets through the fibers (it’s not so complicated). I remember he draw the profile of the fibers, and measured the angles that a ray could hit a fiber, or pass through, and calculated the percentages according to the angles. I think that was an interesting approach, first because for cycles, dealing with statistical information is faster than calculating a more precise result (the shaders do this, and IMO its a good way to create materials); second, because it’s easier to create exactly what you need, and it’s faster for the artist to setup a good looking material.