The behavior you're describing in "Case 1" suggests the client application/framework is not using the configured proxy. What is the application, or what framework is it written in? Some frameworks (particularly the .NET framework) are hardcoded to bypass the proxy for requests to 127.0.0.1 and localhost and you must undertake workarounds (e.g. using the machine's hostname or a virtual hostname like localhost.fiddler) in order for the traffic to be seen.
Check out the Telerik Platform - the only platform that combines a rich set of UI tools with powerful cloud services to develop web, hybrid and native mobile apps.