Ok biggest drawbacks are:
it can't do OS deployment, so if you need to take a machine and put an image on it, you'll need to do this with something else ie netboot/netrestore or deploystudio or something similar
It can't install packages in unattended mode. So basically if you have a bunch of machines sitting at the login window that you wish to deploy software to it can't do it.
When a user logs in they will get a prompt to install each item you have targeted to the machine, the user must accept and wait for the install to happen. Or the user can ignore the prompt and the software will not be installed.
It will not force install packages on deadline even though you specify it.
This again goes back to not being able to install software unattended.
A user is prompted to install, but can simply dismiss this and the software does not install.
Support is terrible, over 4 months from the public release of 10.8 before they added support for 10.8 by releasing a new SCCM Agent. Without this update 10.8 clients could not connect to SCCM at all.
Currently still broken with 10.9.3+ clients. There is a dylib called MACVideoController.dylib, this gets installed by the SCCM client package. On a 10.9.3+ machine this crashes the SCCM agent and prevents it from communicating with the SCCM server. You must delete this MACVideoController.dylb to fix the issue, however this also prevents SCCM from being able to get inventory about the video controller for the machine though.
Your application packages must be wrapped in a special .cmmac format which is kind of a zip format. There is a restriction on the size of these files of 4GB so if your trying to package a large installer ie Adobe CS and the package is larger than 4GB - no dice you can't wrap it in .cmmac and so you can't deploy it with SCCM
MS official support for OS X releases is "within 180 days" so you could be waiting months for them to provide support for a new OS. Going on past history 10.8 took 4 months. Don't hold your breath for quick updates to support Yosemite - especially considering that the 10.9.3 bug was reported to MS in May 2014
No FV2 encryption key escrow
It can not do remote control - you will need to enable remote management via a script and then use a Mac to connect to a remote Mac. Or set a VNC password and access the Mac via a PC using VNC
The inventory information is very basic and I don't believe you can do custom inventory items - I would have to double check that but from memory you can't - so in casper its trivial to add an extension attribute to say get information on a client about for example if the bash shell is vulnerable. this would not be possible in this way using sccm inventory
It doesnt do MCX
It doesn't do config profiles
No VPP for applications on the App Store
Its not a MDM - so no APN for config profiles etc
For iOS you need to use InTune ie Public Cloud
=For every setting you make via compliance in SCCM, you need to test for a setting first ie check gatekeeper status via a script, then write a conditional i.e.: if result of gatekeeper status script is off then run the remediation script which enables it. Tedious to say the least. So you will need to maintain a massive amount of scripts and your scripts will need to take into account all versions of OS X that you manage and have logic to run the correct commands for each OS Version if there is a difference as SCCM can not target the OS correctly for 10.9+ clients you need to target to ALL OS versions.
Enrolling the client in to SCCM will require the end user to enter their AD account credentials. So if you have a freshly imaged machine or a machine out of the box, how do you enroll the machine without an account on there? You can create a package of the SCCM client package and run a post flight script that does the work but you will need to use the expect shell as the SCCM client binary does not support putting the username and password into a command line argument instead it requests an interactive prompt for the user password. You will then need to install this package as a first boot install package via deploystudio or similar tool.
I guess it could be useful if you have like 10 Macs that are owned by say senior executives and they need some basic apps and basic config like wireless network settings and the users can be trusted to install the
If you have a decent amount of Macs and you need to go from out of the box to desired state in an automated fashion then its not really possible with sccm.
Theres a bunch of stuff I've missed for sure but that just of the top of my head.